阅读更多
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
不过他们的下载链接有问题。下不下来~

发表评论

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

相关推荐

  • 在Delphi中使用DBGrid处理多条记录

    摘要:Delphi源码,数据库应用,DBGrid  在Delphi中使用DBGrid处理多条记录,程序界面如上图所示,需要连接数据库才能显示记录,测试前请连接Database文件夹内的数据库文件。

  • delphi数据集与记录

    1.1Delphi数据库应用程序的层次结构 Delphi数据库应用程序通过数据存取构件对数据库进行访问,通过可视的数据构件(Data Control)将数据呈现给用户,并与用户进行交互。Delphi数据库应用程序的结构如下图:   图 2‑1  Delphi数据库应用程序结构图 Delphi访问数据库可以分为三级: (1)、由ADO(Active Data Objec

  • [导入]通用Delphi数据库输入控件DBPanel的实现

    文章来源:http://blog.csdn.net/nm/archive/2000/08/29/4411.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2000/08/29/816534.html

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

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

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

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

  • datagrid 的行录入操作实现

    实现表格行录入,基于 datagrid 的列属性 editor 实现效果 1、 在表单上添加列属性 editor 2、 调用 datagrid 的方法,对指定数据行开启编辑功能 编辑后,进行选择 endEdit 编辑结束,保存编辑效果、 canceEdit 取消编辑,还原到编辑前效果 3、 在表格插入一行新的数据,进行编辑 在实际开发当中,通常...

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

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

  • Delphi 获取选中的行或列,选中到某个行数

    procedure xxx.xxx; var colName : string;Col:Integer; begin colName := cxGridDBKCSL.Controller.FocusedColumn.Caption; if (colName='XXXX') then begin Col := cxGridDBKCSL.FindItemByName(colName).Index; end; 获取指定的列名,判断列名是否是自己要的,然后或者列的序号 ACanv...

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

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

  • Delphi中SQL批量插入记录

    http://www.cnblogs.com/azhqiang/p/4050331.html   在进行数据库操作时, 我们经常会遇到批量向数据库中写入记录的情况. 在这里我提供3种操作方式:   1.  单条语句循环插入, 这是最笨的方法: for i := 0 to 100 do   ADOCommand1.Execute('IINSERT INTO .....')   //伪码, 只...

  • CXGrid实现录入单据的例子

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

  • 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; /...

  • 很多年前D7下自己做的控件DbTree

    很早以前自己做的控件,留做纪念,也可以学习用。使用方法在https://bbs.csdn.net/topics/40141006?list=208443里。

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

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

  • CxGrid不关联数据源录入表单(动态创建).rar

    CxGrid不关联数据源录入表单(动态创建).rar

  • 财务输入控件

    一个中国式的财务数字输入控件,//参考了别人的代码,做一个中国式的财务数字输入控件;比较粗糙,但也学习到不少东西

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

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

Global site tag (gtag.js) - Google Analytics