Pull to refresh

Comments 14

Почему эти патчи прямиком не направятся к Matz?
Ведь проще отправить pull request и чтобы они были сразу в ядре
Это вопрос к Matz'у :) На сколько я помню эти патчи предлогались в ruby-core рассылке. Но он почему-то не захотел.
Лучше всего это рассказывает как раз FunnyFalcon, Юра Соколов.
Например был патч ускоряющий загрузку — у Юрия он был сразу с учетом узких мест но смотрелся сложновато, поэтому вначале смержили другой. Потом до неучтеных моментов добрались, и все доделали, а Юрин патч, который собственно сразу все и фиксил, пролетел.
Мораль — мержат легко и просто легкие и простые патчи.

Кстати вроде бы array queue уже вмержили в какую-то ветку.
> Указываем RVM с какими параметрами надо компилить Ruby

Для AMD лучше делать так

rvm_configure_env=(CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O3 -pipe" CXXFLAGS="${CFLAGS}")


-fomit-frame-pointer на AMD не работает.

А вобще для каждого процессора лучше смотреть сюда — en.gentoo-wiki.com/wiki/Safe_Cflags
Померяйте у себя производительность с native и с k8, интересно же!
Если ускорение будет существенным, я обязательно добавлю это в статью.

В моем случае:
-march=native

real 0m17.200s user 0m15.089s sys 0m1.072s

-march=corei7

real 0m17.153s user 0m15.093s sys 0m1.076s

-march=native — избавляет нас от некоторых сложностей с подборкой параметров и делает это хорошо.
А раз так, то смысл перегружать статью лишней информацией?

В приведенном случае упор был на отсутствие -fomit-frame-pointer и на то что из-за некоторых косяков в gcc, он не всегда способен самостоятельно опознать архитектуру используя native. Ну и плюс использование -O3 (что не у каждого заработает, по этому лучше смотреть Safe Flags)
на AMD64 (x86_64) в смысле не работает? Я не вижу зависимости ABI от производителя процессора.

Но вообще frame pointer в руби выключать не стоит в принципе. Минимальный оверхед на грани заметности, а дебажить скучнее становится в разы.
конкретно у меня просто не собирается. ошибку не помню, но не пашет. AMD Athlon(tm) 64 X2 Dual Core Processor 6000+. Ubuntu x64 12.10
где бы почитать описание что делает каждый патч? по указанной ссылке только
Some of the patches are based on the work of others (some of them are included in ruby enterprise edition)

ну и ссылки на те патчи, на основании которых сделаны «some of the patches».
внутри *.patch тоже без комментов
Я думаю лучший вариант это читать патчи и пытаться понять что они делают :)

Хотя по названиям большинство понять можно.
Если кто-то захочет дать инвайт funny falcon-у, патчи которого есть в этом сете, напишите, скину его почту.
Для недавно вышедшего свеженького ruby-1.9.3-p374:

$ rvm get head
$ rvm reinstall 1.9.3-p374 --patch railsexpress -n railsexpress -j 3
$ rvm list
$ rvm use ruby-1.9.3-p374-railsexpress --default
Sign up to leave a comment.

Articles

Change theme settings