Ruby Enterprise Edition官网,www.rubyenterpriseedition.com软件二是一些内存处理有问题的Ruby本地扩展库造成的内存泄露,这种情况就必须尽量避免使用第三方库,即使要用,也要保证它的稳定性。比方说JavaEye最早使用RMagic处理图片,之后改成了mini_magick,JavaEye曾经一直使用hpricot来处理htmltag和博客导入,也经常造成内存泄露,最近把hpricot全部替换成nokogiri以后解决了内存泄露
RubyEnterpriseEdition(REE)是标准Ruby解析器的改进版本,号称能够让rails应用节约1/3的内存使用量,并且有有更好的性能提高,REE提供了Googletcmalloc库,可以提高Ruby分配内存的效率“Ruby Enterprise Edition”www.rubyenterpriseedition.com。
JavaEye网站在过去的Rubyonrails实践当中,曾经被Ruby的内存泄露问题深深的困扰过,并且自己编写了监控Ruby进程泄露的监控脚本来解决这个问题。造成Ruby内存管理不善的原因主要来自于两个方面,一是RubyGC的实现本身存在很多问题,关于这一点,以前已经多次讨论,随着MBARI内存补丁的发布,已经基本解决。特别是随着RubyEnterpriseEdition集成MBARI补丁,以及不断完善Ruby实现,已经让Ruby可以作为一个稳定的后台服务的实现了