2014-12-23 9 views
0

Мы ищем быстрый движок для рендеринга просмотров.Ruby 2.1 с erubis Шаблон Engine

Как я понимаю, erubis - это самый быстрый механизм шаблонов в рубине.

My usecase - это визуальные шаблоны через скрипт.

Глядя на официальную страницу жемчужины, ее последняя версия была в 2011 году. Не уверен, что сообщество активно. https://rubygems.org/gems/erubis/versions

Кто-нибудь использует ruby ​​2.1 с двигателем шаблона erubis?

Рекомендуется ли использовать erubis с рубином 2.1?

Благодаря Абхай

+0

Существует запрос [Pull Request] (https://github.com/kwatch/erubis/pull/5) для поддержки Ruby 2.1, но он не объединен (пока). Кстати, вы столкнулись с проблемами производительности уже в своем приложении? Если да, уверены ли вы, что движок шаблона является узким местом? И у вас есть эталонный набор для сравнения разных шаблонов? – zwippie

+0

@zwippie Спасибо за быстрый ответ. Мы создаем библиотеку, в которой мы должны отображать около 2 миллионов операций с шаблонами + db через сценарий (а не рендеринг веб-запросов) как можно более низкое время. Медленная производительность ERB-рендеринга нашла свое замечание в нашем веб-приложении, которое обслуживает 2 миллиона пользователей в месяц. Erubis хвастается как 3 раза быстрее. Это может быть значительным улучшением в нашем случае. – abrocks

+0

Хорошо, это звучит как справедливая ситуация, чтобы найти самый быстрый движок шаблонов. BTW: Erubis присутствует в моем «Gemfile.lock» как зависимость от некоторых других драгоценных камней, и, похоже, работает с моей установкой Ruby 2.1. – zwippie

ответ

3

Я побежал тест между Еврорадио erubis рендеринга с ниже фрагмент кода.

erubis_render_time = Benchmark.realtime { 

    template_content = File.read("#{Rails.root}/app/views/web/email_templates/erubis_benchmark_test.erb") 
    1000.times do |j| 
    email_body = Erubis::Eruby.new(template_content).result({welcome_mail_cta: "Shop Now", welcome_mail_string: "Welcome. Your account is activated"}) 
    end 
} 


template_path = "/web/email_templates/benchmark_test" 
erb_render_time = Benchmark.realtime { 
1000.times do |j| 
    email_body = ActionController::Base.new.send(:render_to_string, 
               :template => template_path, 
               :layout => false, 
               :locals => {:data => {welcome_mail_cta: "Shop Now", 
                    welcome_mail_string: "Welcome. Your account is activated" 
                } 
                  } 
              ) 
end 
} 

Согласно вышеописанному эталонному набору Erubis в 10-15 раз быстрее, чем рендеринг ERB.