我有一个 Rails 3.2.2 应用程序,我希望使用 JRuby 1.6.7(1.9.2 模式)运行它。
我有一个在 MRI ruby 1.9.3 中运行的示例应用程序,典型的请求在 ~40 毫秒内返回:在 36 毫秒内完成 200 OK(查看:27.5 毫秒 | ActiveRecord:8.2 毫秒)
在 JRuby 下,使用相同的请求会慢 3 到 20 倍,具体取决于页面。对于与上述相同的操作,大约需要 180 毫秒:在 180 毫秒内完成 200 次 OK(查看次数:153.0 毫秒 | ActiveRecord:24.0 毫秒)
这是正常的性能差异吗?我读过 JRuby 在速度上与 MRI 大致相等。结果保存在我的 Mac 和 Windows 服务器上(不幸的是它需要运行)。用在 Tomcat 下运行的 Warbler 打包它同样慢。
以上时间来自为测试 JRuby 创建的基本 Rails 应用程序。在更复杂的应用程序上,时代相距更远。在该应用程序上,某些页面上运行了更多 ruby 代码。似乎页面越依赖红宝石,我观察到的性能差异就越大。我没有调整 JRuby,因为我不知道从哪里开始。
所以我的问题是:这正常吗?我可以做些什么来调整 JRuby?