我有一台几个月前配置的机器。使用 RVM 安装 ruby 1.9.3-p125 以及 1.9.3-p125-perf。当我将原始 ruby 性能与另一台相同的机器进行比较时,旧机器的表现优于它们。
例如:
================================================================================
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,现在 ruby慢的。就好像 RVM 中发生了一些变化,或者我安装了某些包,导致 ruby 的编译版本性能明显变差。
我知道这是一个很难回答的问题,但我应该研究哪些事情才能查明为什么性能会受到如此大的影响?
编辑
我刚刚尝试使用 ruby-build 安装,安装的版本很快。在我的环境中,rvm 构建它的某些操作很慢。
答案1
问题与 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