如何使用dripmain.rb为rails app使用现有的vm?

时间:2014-03-13 18:48:10

标签: jruby jrubyonrails

我正在尝试使用drip根据JRuby wiki减少Rails应用程序的JRuby VM启动时间。

我通过更改JRUBY_OPTS的某些内容来加快速度,但我没有看到任何使用滴水的减少。它似乎为每次调用启动了一个新的进程/ vm,而不是重新使用现有的VM。

我正在关注this guide以设置设置。

dripmain.rb

require_relative './config/application'

终端

$ { time ( jruby -e 'puts 9*9') }
81
( jruby -e 'puts 9*9'; )  0.08s user 0.08s system 14% cpu 1.144 total

$ drip ps
31166 org.flatland.drip.Main org.jruby.Main ...

$ { time ( jruby -e 'puts 9*9') }
81
( jruby -e 'puts 9*9'; )  0.08s user 0.08s system 13% cpu 1.182 total

$ drip ps
30965 org.flatland.drip.Main org.jruby.Main

我预计那些滴水的过程ID是相同的。开放式听力非滴灌解决方案。我查看了theine / nailgun,但无法使它们工作。

1 个答案:

答案 0 :(得分:2)

问题是我错过了这个导出:

export DRIP_INIT="" # Needs to be non-null for drip to use it at all!

作为rvm shell script on github的一部分找到的解决方案。

# Source this file if you use Drip to make the JVM not suck
# drip: https://github.com/flatland/drip
# https://github.com/flatland/drip/wiki/JRuby

# JAVACMD is honored by jruby
export JAVACMD=`which drip`
# Drip preloads our codez
export DRIP_INIT_CLASS=org.jruby.main.DripMain
export DRIP_INIT="" # Needs to be non-null for drip to use it at all!

# settings from: https://github.com/jruby/jruby/wiki/Improving-startup-time
export JRUBY_OPTS="-J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C"