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%左右的提升
分享到:
相关推荐
《Programming Ruby 1.9 (3rd edition)》是一本专为程序员编写的关于Ruby语言的权威指南,这本书的第三版详细介绍了Ruby 1.9版本的语言特性、库以及编程实践。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的...
在Windows环境下安装Ruby 1.9,通常会涉及到编译环境的配置,因为Ruby的源码需要通过编译才能在Windows系统上运行。不过,如果你选择的是预编译的二进制zip包,这个过程就会简化很多。下面,我们将详细讨论如何通过...
7. **性能提升**:Ruby 1.9采用了YARV(Yet Another Ruby Virtual Machine)虚拟机,相比MRI(Matz's Ruby Interpreter)有显著的性能提升,代码执行速度更快。 8. **异常处理**:异常类层次结构进行了调整,`...
《Ruby 1.9中的Lambda函数详解》 Ruby语言的一大魅力在于其Block功能,它使得编写简洁、可复用的算法变得轻而易举,甚至让人们对循环的畏惧感大大降低。Block在其他编程语言中被称为Lambda函数或匿名函数,有时也被...
这种不兼容性源于对Ruby语言及其核心库的深入修改,目的是提升语言性能和规范。Ruby 1.9.0的推出并非完全稳定,Matz,即Ruby的创始人,曾在ruby-core邮件组中提及,此版本包含了所有预期的不兼容性修改,但并未提供...
Ruby 1.9在性能、语法改进以及新特性方面进行了大量的更新和优化。 - **Ruby 2.0 版本**: Ruby 2.0版本预计将于2010年发布,这表明Ruby 1.9是当时最新的稳定版本。 #### 详细知识点解析 ##### 1. Ruby 基础介绍 - *...
Ruby是一种快速发展的激动人心的动态语言,本书是Ruby 1.9和Ruby 2.0这两个最新版本的完整参考指南。Ruby是一种完全面向对象的语言,类似于经典的面向对象语言Smalltalk。与Smalltalk一样,它是动态类型的,但与...
Ruby 1.9是Ruby的一个重要版本,引入了许多改进和新特性,包括性能优化、新的字符串编码系统、改进的模块和类的加载机制等。 在本书中,读者将学习到以下核心知识点: 1. **基础语法**:了解Ruby的基本数据类型,...
### 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 设计,利用了 Ruby 1.9 中的新特性和性能提升。 - **代码生成器**:提供了生成器来帮助快速搭建项目结构,但并不强制要求特定的项目结构。 - **代码热加载**:通过...
[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》一书由Dave Thomas、Chad Fowler与Andy Hunt共同编写,是Pragmatic Bookshelf出版的一部权威性指南,旨在帮助读者深入理解和掌握Ruby编程语言的1.9版本。该书不仅是对原版《Programming ...
Ruby 1.9是Ruby语言的一个重大更新,它引入了多项改进和新特性,包括但不限于性能优化、新的字符串处理方式、改进的数组和哈希表操作、以及更强大的元编程能力。这些变化使得Ruby 1.9在处理大数据量和复杂逻辑时更加...
1.9版本是Ruby的一个重要里程碑,引入了许多新特性,包括性能改进、新的字符串处理方式等。 #### 描述解析:“Pragmatic.Programming.Ruby.1.9.Apr.2009” 这一描述提供了更具体的信息,指出这本书是在2009年4月...
根据之前的综合评测来看,1.9的性能大约是1.8.6的三倍左右,性能追上了Python。 2、ruby 1.9正式支持内核多线程机制,可以大大提高ruby作为服务端程序的并发处理能力 3、ruby 1.9还引入了纤程这样的多任务并发处理...
此外,Ruby 1.9还引入了新的内建数据结构,如Symbol表和Fixnum/Bignum的合并,提高了性能。 Ruby编程语言的核心特性包括: 1. 面向对象:Ruby是一种纯粹的面向对象语言,所有数据都是对象,包括基本类型,如整数和...