阅读更多
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...

  • 【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 .....')   //伪码, 只...

  • 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开发学习二:使用ADOQuery控件对SQL数据库表进行操作

    在delphi学习一中,已经使用ADOConnection控件设置属性连接数据库SQL了。 在这里开始使用ADOQuery控件对SQL数据库表进行操作。 首先我们在SQL中创建数据库名为PERSONNELMG_SYS的数据库,然后在这个数据库里创建USER_TABLE表,用来存放用户账户信息。 USER_TABLE表的结构如下图所示: 该表有用户名(USER_NAME) 、用户密码(USE

  • delphi dbgrideh滚动条问题

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

  • dbpanel:laravel应用程序开发人员工具

    dbpanel 介绍 dbpanel是用于laravel应用程序的开发人员工具。 您可以通过调用controller的namepspace@method来测试controller的操作方法,并保存它们以备将来使用。 您还可以运行artisan命令,对可用方法及其所有相关文档和参数类型进行名称空间查找。 :loudspeaker: 您还可以在同一面板中轻松快捷地访问laravel应用程序的database 。 该包装中有一些很酷的过滤器。 您可能还会查看表的列类型和索引。 您还可以更新和删除过滤的数据。 :loudspeaker: 您也可以通过在vue chrome扩展工具中单击open file ,在代码编辑器(phpstorm,vscode)中打开vue组件。 安装 :satellite_antenna: composer require niaz/dbpanel --dev 发布资产 :electric_plug: php artisan vendor:publish --tag=d

  • DELPHI7数据录入,单据录入DEMO,第三方控件为TOPGRID

    在条码处输入6971939910347或6901285991240后按回车,可把tbl_goods的数据带到表格中, 点击保存按钮可以把数据写入tbl_record表中, 点击加载可把tbl_record中的所有数据加载到表格上, 以上只是简单的DEMO,对于初学者来说应该有点帮助, 适用于ERP、进销存等数据录入单据录入等埸景, 还可以在条码列处显示BUTTON等, 高手跳过 用到的控件是TOPGRID3.01.07,也叫TSGRID。

  • delphi dll模块化三层框架下载

    源码下载,delphi源码,dll客户端,delphi dll

Global site tag (gtag.js) - Google Analytics