我必须等待相当长的时间(与我 friend 的机器相比)才能在 jRuby 上执行脚本,尤其是当我运行 rake 任务或测试时。我已经尝试过 jRuby 版本 1.3.1 和 1.4.1 有和没有 ruby-debug gem,并且在每个配置中都出现了同样的问题。
问题很简单: 有什么方法可以改进 jRuby 加载过程吗? ..或者我的 jvm 配置或 jRuby 安装有问题(我通过 rvm - ruby 版本管理器使用 jRuby)?
最佳答案
您可以尝试以下几种方法:
- 使用最新最好的 JRuby 版本(由于广泛的测试套件,即使是最前沿的 git master 分支通常也相当稳定),它们不断在启动时间上工作
- 明智地选择你的 JVM,例如 Oracle JRockit 是面向服务器的,因此启动性能不是问题(无论如何,这些应用程序每隔几年才重新启动一次),Sun 在过去十年中主要忽视了桌面或所以,但自 1.6u12(尝试最近发布的 1.6u18)和 1.7 以来一直变得更好。据说 IBM 的 J9 也非常轻便。
- 尝试 nailgun,这是一个让 JVM 在后台作为守护进程运行的项目(JRuby 中有内置支持,尝试使用
jruby --ng
运行脚本) - 只是不要将 JRuby 用于单元测试和抽取任务:例如,ThoughtWorks Mingle 团队将 MRI 用于单元测试、抽取任务和开发,将 JRuby 用于集成测试、回归测试和生产。 (这显然只有在您的 rake 任务和测试中不使用任何 Java 库时才有效。)
但是,测试和脚本是 JRuby 的最坏情况。 JRuby 运行时单独 已经很重了,比 MRI 重得多。仅仅将整个野兽从磁盘加载到 RAM 中就已经比在 MRI 中运行相同的脚本花费更长的时间。我们甚至还没有添加 JVM 的启动时间!
关于ruby - 如何改善 jRuby 加载时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3778472/