Назад | Перейти на главную страницу

Ruby, установленный на Ubuntu 10.10 медленно на одной машине, но не на другой

У меня есть машина, которая была подготовлена ​​несколько месяцев назад. RVM использовался для установки ruby ​​1.9.3-p125, а также 1.9.3-p125-perf. Когда я сравнивал производительность сырых рубинов с другой идентичной машиной, старая машина их курила.

Например:

================================================================================
With in-block needle calculation
================================================================================
Rehearsal ----------------------------------------------
detect       3.790000   0.000000   3.790000 (  3.800895)
each         2.410000   0.000000   2.410000 (  2.420860)
any          3.960000   0.000000   3.960000 (  3.972099)
include      1.440000   0.000000   1.440000 (  1.442862)
------------------------------------ total: 11.600000sec

против

================================================================================
With in-block needle calculation
================================================================================
Rehearsal ----------------------------------------------
detect      10.740000   0.000000  10.740000 ( 10.769366)
each         6.080000   0.010000   6.090000 (  6.106323)
any         10.600000   0.000000  10.600000 ( 10.641606)
include      4.160000   0.000000   4.160000 (  4.171530)
------------------------------------ total: 31.590000sec

Я попытался переустановить 1.9.3-p125 с rvm на быстрой машине, и теперь этот рубин медленный. Как будто что-то изменилось в RVM или я установил какой-то пакет, который значительно ухудшил работу скомпилированных версий ruby.

Я знаю, что на этот вопрос сложно ответить, но на что я должен обратить внимание, чтобы выяснить, почему производительность так сильно пострадала?

редактировать

Я просто попытался установить с помощью ruby-build, и версия была установлена ​​быстро. Что-то, что делает rvm для его создания в моей среде, работает медленно.

Проблема связана с некоторыми настройками по умолчанию, которые использует RVM. Две вещи имеют большое значение: --disable-shared и --patch cflags.patch

cflags.patch существует только для 1.9.3-p194 и p286 и теперь добавляется автоматически.

rvm get head && rvm reinstall 1.9.3-p194 --disable-shared --debug

Вы должны увидеть применение cflags.patch.

Если вам нужна нашивка сокола, вам нужно сделать:

rvm get head && rvm reinstall 1.9.3-p194-perf --patch cflags.patch --patch falcon.diff --disable-shared --debug

Информация из: https://github.com/wayneeseguin/rvm/issues/1240