阅读更多
Ruby Enterprise Edition (REE) 是标准Ruby解析器的改进版本,号称能够让rails应用节约1/3的内存使用量,并且有有更好的性能提高。最近它发布了新版本,包括了如下新特性:
1. GC的改进,提高服务器的GC性能
2. 更好的Max OS X系统支持
3. 更好的64操作系统支持,在64位的FreeBSD 7和64位的Ubuntu 8.10 Server测试通过。
4. 更好的solaris操作系统支持

这次的更新对64位支持很不错,因为目前很多rails的应用都跑在64位os上(包括javaeye),据作者说64位上节约的内存在1/4左右

更多的更新信息请参考:
http://blog.phusion.nl/2008/12/05/ruby-enterprise-edition-186-20081205-released-thank-you-sponsors/


          -------------------------------------- 评论分割线 ------------------------------------------

REE(Ruby Enterprise Edition)主要使用了两项技术来提高Ruby的性能和内存分配:

一、Copy On Write技术

当父进程创建子进程的时候,地址空间不并复制到子进程,只有子进程需要写地址空间的时候,才复制地址空间。因此父进程和子进程可以共享只读地址空间,节省内存。使用REE号称节省了25%的内存。

但是Copy On Write的前提是由父进程来创建子进程,才可能共享内存地址空间。无论你是用Nginx/Mongrel/Thin,还是用Lighttpd/FastCGI来跑Rails,其实都是独立启动n个互相之间没有任何关系的进程,所以根本无法利用到Copy On Write。事实上你只有使用Apache/mod_rails的时候才可能得到这项好处。


二、tcmalloc Google开源出来的线程缓存的内存分配技术

tcmalloc当然很好,但问题是64位CPU上仍然无法使用tcmalloc,所以REE在64位CPU的服务器上tcmalloc是被disable掉的。

REE的这两项技术在不同的服务器上面表现如下:

On 32-bit:
- 5% slowdown because of GC patches
- 25% speedup because of tcmalloc
- Net result: 20% speedup.

On 64-bit:
- 5% slowdown because of GC patches
- No tcmalloc available
- Net result: 5% slowdown.

也就是说,如果你在64位CPU的服务器上面跑REE,Ruby性能会下降5%!而如果此时你用的部署方式不是Apache/mod_rails的话,连内存都不会节省一分一毫。

所以先不要着急欢呼。
9
0
评论 共 4 条 请登录后发表评论
4 楼 weilJava 2011-03-21 17:45
用ruby可以获取当前CPU使用率和内存使用的信息吗?
3 楼 t0uch 2008-12-08 18:54
也就是说,如果你在64位CPU的服务器上面跑REE,Ruby性能会下降5%!而如果此时你用的部署方式不是Apache/mod_rails的话,连内存都不会节省一分一毫

所以到现在为止,javaeye还是没有使用这个REE,至少,内存泄漏的问题应该没有了吧?
2 楼 ruvuoai 2008-12-08 10:58
2天不见,多了这么多东西南北,世界真实无时无刻滴不再变化呀!!
1 楼 reeze 2008-12-07 09:26
不过他们的下载链接有问题。下不下来~

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • CXGrid实现录入单据的例子

    sql server数据库 第三放控件 dev express和Raize

  • 新增MariaDB数据库管理、支持多版本MySQL数据库共存,1Panel开源面板v1.6.0发布

    新增MariaDB数据库管理、支持多版本MySQL数据库共存、支持定时备份系统快照

  • refman 5.7 en mysql_实战三种方式部署 MySQL5.7

    作者:北京运维常见的 MySQL 安装方式有如下三种:RPM 包方式:这种方式安装适合对数据库要求不太高的场合,安装速度快;通用二进制包方式:安装速度相较于源码方式快,可以自定义安装目录。源码编译安装:安装过程比较慢,机器性能不好的情况下,大约需要30分钟左右,通常适用于mysql定制化的安装,比如需要加入一些第三方的插件及依赖库等环境说明OS 版本MySQL 版本CentOS7.5.18045...

  • Delphi深度探索之PItemIDList的基本概念

    PIDL的秘密   从Windows 95开始,微软公司为操作系统引入了新的外壳界面,新的外壳从根本上改变了应用程序同操作系统的结合方式,遗憾的是微软公司对于发布同外壳相关的编程信息方面显得很吝啬,可以得到的资料非常少,而且质量也不高。对于Delphi开发者来说,情况就更为严重了,因为几乎所有的Windows API 文档都是针对C/C++程序员的,但是Nothing is impossibl

  • 【3.Delphi常用组件】2.输入显示组件

    2.输入显示组件 2.1 Edit组件 编辑框 Edit 组件可用于输入文本,也可以显示文本。主要属性如下: 属性 说明 AutoSelect 设置组件获得焦点时,文本是否自动选中。 AutoSize 决定组件是否自动随字体的变化而改变大小。 Enable 设置编辑框是否能使用 BorderStyle 用来设置编辑框的边框类型,取值: bsSingle - 单线边框;bsNone - 无边框 MaxLength 设置编辑框所能接受的最大字符数

  • Delphi Label显示多行文本的换行方法

    Label 其字面意思是标记;示踪剂;带垂饰的横带。 Delphi 中 往往使用在 表示某个功能、变量等属性的诠释和标注。哪在 Delphi 中如何让 Label 换行处理多个字符呢? 我们有一下几种方式: 第一种: label1.Caption := '程序员(英文Programmer)是从事程序开发、'+ '程序维护的基层工作人员。'+ #10 +'一般将程序员分为程序设计人员'+ '和程序编码人员,但两者的界限并不非常清楚。'+ #10 +'随着互联网'+ '的不.

  • 20.Delphi对象式数据管理功能

    ====================================================== 注:本文源代码点此下载 ====================================================== 面向对象技术是九十年代的主流技术,各类应用软件如果以面向对象的方法构造并且渗透面向对象的风格将使软件具有更高的品质。在面向对象程序设计中,对象式数

  • LabWindows操作SQL SERVER

    首要的安装 sqltoolkits.rar,添加 cvi_db.h cvi_db.fp,所有测试环境是LabWindows 2013+SQL SERVER 2008 +WINDOWS7/10 1 全局变量和数据结构 const int channelCount=21; //通道数目 int hdbc; //数据库连接 int hstat; //SQL语句执行 long curRecord=0; /...

  • Delphi使用数据控件输入和修改数据

    需要数据库配合的例子,Delphi使用数据控件输入和修改数据,例子中的数据库文件在Database文件夹中,显示数据报表和修改原有数据是本例演示的主要操作,适合刚接触Delphi数据库编程的新手,来学习一下如何在Delphi中使用数据库控件编程。

  • Delphi中数据的自动录入

    ====================================================== 注:本文源代码点此下载 ====================================================== 在delphi数据库应用系统的数据录入过程中,有些数据是保存在excel中的;有些是保存在纸张上的;还有一些是需要新增加的,由于各条记录之间有大量

  • delphi 数据录入通用方法:dbpanel

    提供全部源码 delphi 数据录入通用方法:dbpanel

  • Extjs4循序渐进(三)——表单及表单控件详解一(表单布局和基础控件 Text,Text...

    转自:http://www.360doc.com/content/13/0210/21/1947337_265085607.shtml 表单基础      如果说GRID是数据展示最直接的方式,那么表单就是数据采集最常用的方式。在一个项目中,从小的登录界面到大的报表填报,表单无处不在。而Ext中提供了大量的表单控件,不仅美化了html本身所提供的表单元素,也有着其不具备的强大功能。值得一说的是,

  • LabWindows中Table控件的下拉列的设置

    1 先看样式 2 样式设置,双击table,添加列以后,编辑列,选择 Combo box 3 全选一列,无法添加值,只有选中一个单元格才可以添加值 -------->>>------->> 4 行的隐藏,其实不是真的隐藏行,而是把对应行的字体颜色改为白色 //历史数据显示到表格 void displayDataTableDB() { char tt[80]; //把数据显示到表格 SetCtrlAttribute(panelHandleDb,...

  • delphi dbgrideh滚动条问题

    想要实现的效果: 在DBgrideh做了勾选框,在指定行勾选后,在原地位置刷新数据,光标以及滚动条都不变; 在原地刷新数据后,用DBGRID的DataSource.DataSet.Locate自带定位功能,将光标指向原选中行,但是,原选中行的物理顺序的位置变了,.Locat定位后,总是在DBGRIDEH倒数第二行, 本人比较菜,经过一天的折腾,终于找到一种方法,可以实现,虽然用起来效果不怎么好...

Global site tag (gtag.js) - Google Analytics