我有一个Rails 3.2.2应用程序,希望使用JRuby 1.6.7(1.9.2模式)运行。
我在MRI ruby 1.9.3中运行了一个示例应用程序,典型请求返回时间为约40毫秒: Completed 200 OK in 36ms (Views: 27.5ms | ActiveRecord: 8.2ms)
在JRuby下,相同请求的处理速度会变慢3到20倍不等,具体取决于页面。对于上述操作,需要大约180ms: Completed 200 OK in 180ms (Views: 153.0ms | ActiveRecord: 24.0ms)
这个性能差异正常吗?我已经阅读过JRuby与MRI的速度大致相等。结果在我的Mac和Windows服务器上也是如此(不幸的是,它将需要在Windows服务器上运行)。使用Warbler打包,在Tomcat下运行同样很慢。
上述时间来自为测试JRuby创建的基本Rails应用程序。在更复杂的应用上,时间差距更大。在该应用程序中,某些页面上运行的Ruby代码较多。似乎页面对Ruby依赖性越高,我观察到的性能差异就越大。因为我不知道从哪里开始,所以我没有对JRuby进行任何调优。
因此,我的问题是:这个性能差异正常吗?我应该如何调优JRuby?
生产
模式下运行,与开发模式相比,响应速度有时会快5-6倍。至少在我的情况下是这样的。谢谢您注意到这一点。 - Aleks