Я не могу понять, как профилировать приложение JRuby On Rails в Tomcat. На самом деле, я не знаю, как передать --profile
вариант JRuby, когда код ruby запускался не командой jruby
, а с java
.Как передать JRUBY_OPTS в JRuby войну/банку, упакованную с Warbler?
Чтобы исследовать вопрос, который я создал файл:
$ cat bin/profile_puts.rb
require 'yaml'
puts ENV['JRUBY_OPTS']
require 'jruby/profiler'
def profile(&block)
JRuby::Profiler::GraphProfilePrinter.new(JRuby::Profiler.profile(&block)).printProfile(STDOUT)
end
profile do
puts "hi"
end
выбежала
$ jruby --profile.api bin/profile_puts.rb
И получил правильный вывод профилировщика.
Тогда я упаковываю его с камышевкой и побежал
$ gem install warbler
$ warble jar
$ JRUBY_OPTS=--profile.api java -jar profile.jar JarMain
И получил ошибку:
--profile.api
RuntimeError: Profiling not enabled in runtime
Как вы можете видеть, переменная JRUBY_OPTS
среды попала в процесс, но не имел никакого влияния на JRuby ,
Как это можно решить?