`
inosin
  • 浏览: 90949 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ruby1.9各补丁性能评测

    博客分类:
  • 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%左右的提升

4
0
分享到:
评论
2 楼 inosin 2012-12-05  
QuakeWang 写道
有没有加上tcmalloc试试看效果?

这个还真没有试,回头抽时间试试
1 楼 QuakeWang 2012-12-05  
有没有加上tcmalloc试试看效果?

相关推荐

    Programming Ruby 1.9 (3rd edition)和源码

    《Programming Ruby 1.9 (3rd edition)》是一本专为程序员编写的关于Ruby语言的权威指南,这本书的第三版详细介绍了Ruby 1.9版本的语言特性、库以及编程实践。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的...

    windows下安装Ruby 1.9 二进制zip包

    在Windows环境下安装Ruby 1.9,通常会涉及到编译环境的配置,因为Ruby的源码需要通过编译才能在Windows系统上运行。不过,如果你选择的是预编译的二进制zip包,这个过程就会简化很多。下面,我们将详细讨论如何通过...

    Programming Ruby 1.9

    7. **性能提升**:Ruby 1.9采用了YARV(Yet Another Ruby Virtual Machine)虚拟机,相比MRI(Matz's Ruby Interpreter)有显著的性能提升,代码执行速度更快。 8. **异常处理**:异常类层次结构进行了调整,`...

    透视Ruby 1.9的Lambda函数

    《Ruby 1.9中的Lambda函数详解》 Ruby语言的一大魅力在于其Block功能,它使得编写简洁、可复用的算法变得轻而易举,甚至让人们对循环的畏惧感大大降低。Block在其他编程语言中被称为Lambda函数或匿名函数,有时也被...

    为何Ruby 1.9的不兼容性会导致原有Ruby代码无法工作

    这种不兼容性源于对Ruby语言及其核心库的深入修改,目的是提升语言性能和规范。Ruby 1.9.0的推出并非完全稳定,Matz,即Ruby的创始人,曾在ruby-core邮件组中提及,此版本包含了所有预期的不兼容性修改,但并未提供...

    ruby 1.9 教程

    Ruby 1.9在性能、语法改进以及新特性方面进行了大量的更新和优化。 - **Ruby 2.0 版本**: Ruby 2.0版本预计将于2010年发布,这表明Ruby 1.9是当时最新的稳定版本。 #### 详细知识点解析 ##### 1. Ruby 基础介绍 - *...

    Programming Ruby 1.9 & 2.0 The Pragmatic Programmers’ Guide 4th Edition

    Ruby是一种快速发展的激动人心的动态语言,本书是Ruby 1.9和Ruby 2.0这两个最新版本的完整参考指南。Ruby是一种完全面向对象的语言,类似于经典的面向对象语言Smalltalk。与Smalltalk一样,它是动态类型的,但与...

    Programming Ruby 1.9 The Pragmatic Programmers' Guide

    Ruby 1.9是Ruby的一个重要版本,引入了许多改进和新特性,包括性能优化、新的字符串编码系统、改进的模块和类的加载机制等。 在本书中,读者将学习到以下核心知识点: 1. **基础语法**:了解Ruby的基本数据类型,...

    Programming Ruby 1.9 3rd edition

    ### Programming Ruby 1.9 3rd Edition:深入探索Ruby编程语言 #### 一、书籍概览 《Programming Ruby 1.9》是第三版,专注于介绍Ruby 1.9.2版本,由Dave Thomas、Chad Fowler和Andy Hunt共同编写。这本书由The ...

    (ruby 1.9 开发)Rango

    - **仅支持 Ruby 1.9**:Rango 专门为 Ruby 1.9 设计,利用了 Ruby 1.9 中的新特性和性能提升。 - **代码生成器**:提供了生成器来帮助快速搭建项目结构,但并不强制要求特定的项目结构。 - **代码热加载**:通过...

    [Ruby] Ruby 1.9 & 2.0 编程 (英文版)

    [Pragmatic Bookshelf] Ruby 1.9 & 2.0 编程 (英文版) [Pragmatic Bookshelf] Programming Ruby 1.9 & 2.0 The Pragmatic Programmers' Guide 4th Edition (E-Book) ☆ 出版信息:☆ [作者信息] Dave Thomas , ...

    Programming Ruby 1.9 (Pragmatic Bookshelf 2009).pdf

    《Programming Ruby 1.9》一书由Dave Thomas、Chad Fowler与Andy Hunt共同编写,是Pragmatic Bookshelf出版的一部权威性指南,旨在帮助读者深入理解和掌握Ruby编程语言的1.9版本。该书不仅是对原版《Programming ...

    Pragmatic.Programming.Ruby.1.9.Apr.2009.pdf

    Ruby 1.9是Ruby语言的一个重大更新,它引入了多项改进和新特性,包括但不限于性能优化、新的字符串处理方式、改进的数组和哈希表操作、以及更强大的元编程能力。这些变化使得Ruby 1.9在处理大数据量和复杂逻辑时更加...

    Pragmatic.Programming.Ruby.1.9

    1.9版本是Ruby的一个重要里程碑,引入了许多新特性,包括性能改进、新的字符串处理方式等。 #### 描述解析:“Pragmatic.Programming.Ruby.1.9.Apr.2009” 这一描述提供了更具体的信息,指出这本书是在2009年4月...

    Ruby1.9.1released.zip

    根据之前的综合评测来看,1.9的性能大约是1.8.6的三倍左右,性能追上了Python。 2、ruby 1.9正式支持内核多线程机制,可以大大提高ruby作为服务端程序的并发处理能力 3、ruby 1.9还引入了纤程这样的多任务并发处理...

    Ruby编程语言_涵盖Ruby 1.8和1.9

    此外,Ruby 1.9还引入了新的内建数据结构,如Symbol表和Fixnum/Bignum的合并,提高了性能。 Ruby编程语言的核心特性包括: 1. 面向对象:Ruby是一种纯粹的面向对象语言,所有数据都是对象,包括基本类型,如整数和...

Global site tag (gtag.js) - Google Analytics