Упал мой взор на днях на две статьи: г-на alisnic и г-не Justin Kulesza. Решил проверить, что там и как, поэксперементировать на своей машинке.
Итак, что было:
$ ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux]
И в одном моём проекте:
$ time rake routes
real 0m39.705s
user 0m25.454s
sys 0m2.100s
Как-то всё печально, не так ли? (-:
Дальше начинаются пляски с бубном. (-: Для начала определим, какой у меня процессор:
$ cat /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.00GHz
Теперь неплохо бы узнать, какие CFLAGS можно использовать для моего процессора. Идём по ссылке, и там ясно написано:
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
Теперь в домашней директории создаём, если его нет, файл .rvmrc
, в который добавляем следующее(мой вариант):
rvm_configure_env=(CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer")
Только так rvm можно передать параметры, с какими собирать очередную версию ruby. После этого, опытным путём выяснил, что последняя версия, для которой существует патч falcon, это p194. Следовательно, делаем следующее:
$ rvm get head && rvm reinstall 1.9.3-p194 --patch falcon --force-autoconf -j 3
Пьём чай/курим/ждём. После того, как всё скомпилируется, выполняем следующую команду:
$ rvm use ruby-1.9.3-p194 --default
Вот теперь можно повторить опыт, приведённый в начале статьи (незабываем про bundle install
в директории проекта):
$ time rake routes
real 0m7.854s
user 0m6.072s
sys 0m1.504s
По-моему, очень не плохо.
Юра Соколов, автор патча falcon, обещал сегодня добавить в rvm поддержку falcon и для p327. Будет вообще шикарно. Ждём. А пока можно и этой версией пользоваться. Уж в разработке так точно.
Успехов всем!
Ноябрь 23rd, 2012 by none | 2 комментария