Rails 3.2 - haml vs. erb. Хамль быстрее? (февраль 2012)
Я работаю над проектом, и я все еще думаю об использовании HAML (красивый код, меньше размера файлов вида) вместо классического шаблона ERB.
Мои заботы, почему я этого не делал, это скорость генерации просмотров - я читал статьи/тесты и почти всегда был HAML медленнее, чем ERB, - но правда в том, что статьи 2-3 года.
Итак, мой вопрос: как выглядит сравнение этих двух систем шаблонов сейчас, в начале 2012 года?
Ответы
Ответ 1
Вот некоторые ориентиры от кого-то в ноябрь 2011 г.. Вы должны иметь возможность записывать cd в свой каталог haml и запускать rake benchmark
. Я говорю "должен", потому что вам нужно будет установить соответствующие зависимости для выполнения этой задачи. Я играл с ним несколько минут, но не повезло на месте. Соответствующий файл haml/test/benchmark.rb
.
EDIT:
Я нашел для вас дополнительную информацию. У кого-то еще была такая же проблема, как и я, пытаясь получить локальные тесты, поэтому они перевернули свои собственные. Я разветкил этот gist и добавил поддержку сравнения haml с erb: https://gist.github.com/1807036. Я использовал те же шаблоны, которые библиотека haml использует для сравнения. Вот результаты, которые я получил при запуске кода:
$ ruby benchmark.rb
user system total real
haml: 0.650000 0.000000 0.650000 ( 0.651584)
erb: 0.540000 0.000000 0.540000 ( 0.534727)
Я использовал ruby 1.9.3-p0, haml 3.1.4.
Ответ 2
В Интернете уже есть куча дискуссий.
Но когда у нас есть приложение, в котором мы использовали исключительно ERB. Почему мы должны пытаться переключиться на HAML? Для меня это пустая трата времени и плохое решение, которое не принесло бы много преимуществ. Хотя наш код внезапно станет чище и немного красивее в HAML, мы потратим драгоценные часы на конвертацию ERB в HAML. У нас так много других важных вещей, зачем тратить время на что-то столь бессмысленное в этом случае?
Все это относительное. Вам не нужно использовать HAML вместо ERB. ERB может делать все то же самое. Это просто разные инструменты для одной и той же работы.