如何提高jRuby加载时间?

lua*_*sus 7 ruby performance jvm jruby

我必须等待很长时间(与我的朋友机器相比)在jRuby上执行脚本,特别是在我运行rake任务或测试时.我试过jRuby版本1.3.1和1.4.1有和没有ruby-debug gem,每个配置都出现同样的问题.

问题很简单:有没有办法改进jRuby加载过程?..或者我的jvm配置或jRuby安装有什么问题(我通过rvm使用jRuby - ruby​​版本管理器)?

Jör*_*tag 14

您可以尝试以下几种方法:

  • 使用最新最好的JRuby版本(由于广泛的测试套件,即使是最前沿的git master分支通常非常稳定),他们也在不断地在启动时工作
  • 明智地选择你的JVM,例如Oracle JRockit面向服务器,因此启动性能不是问题(这些应用程序每隔几年才重启一次),Sun在过去十年左右主要忽略了桌面,但是自1.6u12(尝试最近发布的1.6u18)以及1.7以来,它一直变得更好.IBM的J9也被认为非常轻巧.
  • 试试nailgun,这是一个让JVM在后台运行作为守护进程的项目(在JRuby中有内置支持,尝试运行你的脚本jruby --ng)
  • 只是不要使用JRuby进行单元测试和rake任务:例如,ThoughtWorks Mingle团队使用MRI进行单元测试,rake任务和开发,使用JRuby进行集成测试,回归测试和生产.(这显然只有在rake任务和测试中不使用任何Java库时才有效.)

但是,测试和脚本 JRuby最糟糕的情况. JRuby运行时已经非常重,比MRI重得多.将整个野兽从磁盘加载到RAM中只需要比在MRI中运行相同的脚本花费更长的时间.我们还没有为JVM添加启动时间!