ruby1.9各补丁性能评测_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > ruby1.9各补丁性能评测

ruby1.9各补丁性能评测

 2013/7/10 4:37:04  inosin  程序员俱乐部  我要评论(0)
  • 摘要:ruby版本:ruby1.9.3-p327ruby1.9.3-p327+rvm补丁集合ruby1.9.3-p327+falcon.diffruby1.9.3-p327+falcon-gc.diffrvm补丁集合:测试中没有使用rvm,而是直接使用官方的ruby1.9.3-p327,所以只打了rvm补丁集合中的1、2、5、7、8、9这6个补丁falcon的性能补丁:其中falcon.diff和falcon-gc.diff的区别在于:falcon.diff是没有集成backport-gc补丁的
  • 标签:Ruby 补丁
ruby版本
ruby1.9.3-p327
ruby1.9.3-p327 + rvm补丁集合
ruby1.9.3-p327 + falcon.diff
ruby1.9.3-p327 + falcon-gc.diff

rvm补丁集合:
测试中没有使用rvm,而是直接使用官方的ruby1.9.3-p327,所以只打了rvm补丁集合中的1、2、5、7、8、9这6个补丁


falcon的性能补丁:
其中 falcon.diff 和 falcon-gc.diff 的区别在于:
falcon.diff 是没有集成 backport-gc 补丁的,因为作者说他没有感到这个补丁带来任何的好处
falcon-gc.diff 是集成了  backport-gc 补丁的,给认为这个补丁有效果的用户使用

另外作者还给出了一个详细的补丁说明,可以根据自己的需求单独选择
这份补丁集包含6个补丁,其中01、04、06合并为了falcon.diff这个补丁,falcon.diff和05合并成了falcon-gc.diff补丁;这里的02补丁可以加速hash,03补丁可以加速方法、常量和实例变量的查找,已经被合并在06中。可以根据自己的需求安装。

测试结果:
测试方式使用rake routes的方式,项目使用了刚完成的CSDN论坛项目,算是一个比较大型的项目了
time bundle exec rake routes

引用ruby1.9.3-p327 —— 10.462s
ruby1.9.3-p327 + rvm —— 6.042s
ruby1.9.3-p327 + falcon.diff —— 5.793s
ruby1.9.3-p327 + falcon-gc.diff —— 5.868s

调整GC参数:
export RUBY_GC_MALLOC_LIMIT=60000000
export RUBY_FREE_MIN=200000

引用ruby1.9.3-p327 —— 7.010s
ruby1.9.3-p327 + rvm —— 5.083s
ruby1.9.3-p327 + falcon.diff —— 4.884s
ruby1.9.3-p327 + falcon-gc.diff —— 5.102s

再次调整GC参数:
export RUBY_GC_MALLOC_LIMIT=1000000000
export RUBY_FREE_MIN=500000
export RUBY_HEAP_MIN_SLOTS=40000

引用ruby1.9.3-p327 —— 6.846s
ruby1.9.3-p327 + rvm —— 4.915s
ruby1.9.3-p327 + falcon.diff —— 4.732s
ruby1.9.3-p327 + falcon-gc.diff —— 4.943s

GC参数调整说明:
默认ruby支持上面三个环境变量,如果打了02-railsbench-gc.patch这个补丁后,则可以支持:RUBY_HEAP_SLOTS_GROWTH_FACTOR,RUBY_HEAP_SLOTS_INCREMENT,RUBY_HEAP_FREE_MIN(同RUBY_FREE_MIN)

关于CFLAGS调整:
由于我使用的是ruby标准版,没有使用rvm,所以没有再优化Processor-specific CFLAGS,因为默认使用的就是O3,如果使用rvm可以参考 Is Your Application Running with Ruby – Slow? 这篇文章进行优化调整,Gentoo Wiki有介绍如何针对自己的处理器进行优化设置的文章:http://en.gentoo-wiki.com/wiki/Safe_Cflags,Intel CPU的具体优化方案可以直接参考这里http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel

补充:加入tcmalloc
安装了gperftools-2.0
export LD_PRELOAD=/usr/local/lib/libtcmalloc_minimal.so
性能又能有5%左右的提升

发表评论
用户名: 匿名