Posted on 2008-11-15 00:58
dennis 阅读(620)
评论(0) 编辑 收藏 所属分类:
动态语言 、
java
JRuby的内存占用是比较高的,毕竟需要启动一个JVM以及构建抽象语法树等,一般同一个脚本的内存占用都是CRuby的几十倍甚至上百倍。记的Infoq上有过一个新闻是说sun跟东京某大学合作研究Ruby和JRuby的MVM,可以在几个VM之间共享解释器,可以在启动多个VM的时候大大降低内存占用。不过这个项目暂时没有什么消息,要想在实际中应用更是没影的事情。有无其他解决办法?今天看到IBM Developer的一篇文章,原来IBM JRE for the Java platform SE 5早就引入了类共享的特性,也就是说允许通过缓存在 JVM 之间共享类来减少内存占用和重复加载类的开销。最新SR1 jvm更是引入了AOT编译的原生代码也可以放入共享缓存。那么,如果用ibm的支持类共享的VM来跑多个JRuby进程,会不会能大大减少整体的内存占用情况呢?可能出现的两个问题:
1、兼容性,IBM的jvm跑sun的JRuby,还是可能出现兼容性的问题。
2、JRuby的jar包中的类能否被共享?JRuby生成的语法树、Ruby运行时等能不能被共享?
有兴趣的童鞋可以测试一下,我的机器是AMD的,ibm jvm装不了,还是我下错了?