我必须等待很长时间(与我的朋友机器相比)才能在jRuby上执行脚本,特别是在我运行rake任务或测试时。我已尝试使用和不使用ruby-debug gem的jRuby版本1.3.1和1.4.1,并且在每个配置中都出现了相同的问题。
问题很简单: 有没有办法改善jRuby加载过程? ..或者我的jvm配置或jRuby安装有什么问题(我通过rvm使用jRuby - ruby版本管理器)?
答案 0 :(得分:14)
您可以尝试以下几种方法:
jruby --ng
运行脚本)但是,测试和脚本 是JRuby最糟糕的情况。 JRuby运行时单独已经非常重,比MRI重得多。将整个野兽从磁盘加载到RAM中只需要比在MRI中运行相同的脚本花费更长的时间。我们还没有为JVM添加启动时间!
答案 1 :(得分:4)
此外,请确保以客户端模式运行JVM(假设您使用的是Sun的JVM),因为此模式可为测试套件等提供更快的启动速度和更好的整体性能。默认情况下,JRuby应该在客户端模式下使用JVM,但这取决于系统和JVM设置等。要验证您是否正在使用客户端JVM,请调用jruby -v,您应该看到类似这样的内容
Java HotSpot(TM) *Client* VM 1.6.0_18
更新:查看Charles的博文,其中包含改善初创公司的提示:http://blog.headius.com/2010/03/jruby-startup-time-tips.html
答案 2 :(得分:1)
spork可能有所帮助,如果它的单元测试你想要缩短时间。
答案 3 :(得分:0)
JRuby现在有一个--dev
标志,它结合了许多快速选项。我在Rails 5和JRuby 9.1.7.0上进行了模型测试,改进了80%以上!
$ time rspec spec/models
Finished in 2.85 seconds (files took 10.63 seconds to load)
86 examples, 0 failures
rspec spec/models 57.79s user 1.14s system 288% cpu 20.425 total
$ time JRUBY_OPTS=--dev rspec spec/models
Finished in 1.4 seconds (files took 4.15 seconds to load)
86 examples, 0 failures
JRUBY_OPTS=--dev rspec spec/models 11.51s user 0.48s system 139% cpu 8.600 total
不想输入所有这些内容?创建一个Makefile!您可以添加-G
以包含bundle exec
# Makefile
tests:
JRUBY_OPTS='--dev -G' rspec
然后只需运行
$ make tests
来源:https://github.com/jruby/jruby/wiki/Improving-startup-time