Ускоряем ruby и Rails
Упал мой взор на днях на две статьи: г-на alisnic и г-не Justin Kulesza. Решил проверить, что там и как, поэксперементировать на своей машинке.
Итак, что было:
ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux]
И в одном моём проекте:
real 0m39.705s
user 0m25.454s
sys 0m2.100s
Как-то всё печально, не так ли? (-:
Дальше начинаются пляски с бубном. (-: Для начала определим, какой у меня процессор:
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.00GHz
Теперь неплохо бы узнать, какие CFLAGS можно использовать для моего процессора. Идём по ссылке, и там ясно написано:
Теперь в домашней директории создаём, если его нет, файл .rvmrc
, в который добавляем следующее(мой вариант):
Только так rvm можно передать параметры, с какими собирать очередную версию ruby. После этого, опытным путём выяснил, что последняя версия, для которой существует патч falcon, это p194. Следовательно, делаем следующее:
Пьём чай/курим/ждём. После того, как всё скомпилируется, выполняем следующую команду:
Вот теперь можно повторить опыт, приведённый в начале статьи (незабываем про bundle install
в директории проекта):
real 0m7.854s
user 0m6.072s
sys 0m1.504s
По-моему, очень не плохо.
Юра Соколов, автор патча falcon, обещал сегодня добавить в rvm поддержку falcon и для p327. Будет вообще шикарно. Ждём. А пока можно и этой версией пользоваться. Уж в разработке так точно.
Успехов всем!
Недавние записи
- Long time no see
- Ошибка при обновлении Meteor до версии 1.4.2
- Patch falcon для ruby-1.9.3-p327
- Ускоряем ruby и Rails
- Gem ‘seo_params’: определение основных параметров
- Отрицательный margin-top и Opera
- Rspec and Devise reset password
- Backbone.js: Views. Часть первая.
- Backbone.js: Models and Collections
- Backbone.js Routers
Ноябрь 23rd, 2012 at 11:15
Если дать GCC CFLAGS=»-march=native», то он сам определит фичи процессора, и не надо идти на Гентоо Вики )
Ноябрь 23rd, 2012 at 11:19
Я ставил native, когда пересобирал р125, но что-то прирост был в 1,5 раза всего. Хотя… я тогда столько раз ставил-переставлял, что уже мог и потеряться, что к чему… сейчас попробую ещё раз (-: