我不知道如何在Tomcat中分析JRuby On Rails应用程序。实际上,当ruby代码不是由jruby命令运行,而是从java运行时,我不知道如何将--profile选项传递给JRuby。
要调查我创建的文件的问题:
$ 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并得到了正确的分析器输出。
然后我把它和with打包在一起
$ 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没有影响。
如何解决这个问题?
发布于 2015-09-02 22:13:30
java -Djruby.cli.profiling.mode=API -jar profile.jar我应该澄清这一点,JRUBY_OPTS要么由jruby shell脚本处理,要么由命令行界面处理,当使用warbler时两者都不可用,所以您需要查找相应的属性并像这样传递它。上面的一个启用了API分析。
来自jruby --属性
# Enable instrumented profiling modes.
# Options: [OFF, API, FLAT, GRAPH, HTML, JSON, SERVICE], Default: OFF.
#cli.profiling.mode=OFFhttps://stackoverflow.com/questions/31882357
复制相似问题