降低JRuby的內存占用的可能方法
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裝不了,還是我下錯了?
文章轉自莊周夢蝶 ,原文發布時間 2008-11-15
最後更新:2017-05-18 11:02:05