分析一个JRUBY导轨应用程序输出元素
问题描述:
环境:Linux Mint 32位,JRuby-1.6.5 [i386],Rails 3.1.3。分析一个JRUBY导轨应用程序输出<unknown>元素
我正试图在我的rails应用程序上部署JRuby 1.6.5上的WEBrick(在开发模式下)。
我JRUBY_OPTS:“-Xlaunch.inproc =假--profile.flat”
在我的车型之一,我介绍了一个明确睡眠(5),并确保这种方法称为before_save钩的一部分同时保存模型。伪代码...
class Invoice < ActiveRecord::Base
<some properties here...>
before_save :delay
private
def delay
sleep(5)
end
end
上面的代码可以确保发票的实例被持久化之前,方法,延迟被自动调用。
现在,当我配置文件(通过一个RSpec的单元测试)创建这个模型实例的代码,我得到以下输出:
6.31 0.00 6.31 14 RSpec::Core::ExampleGroup.run
6.30 0.00 6.30 14 RSpec::Core::ExampleGroup.run_examples
6.30 0.00 6.30 1 RSpec::Core::Example#run
6.30 0.00 6.30 1 RSpec::Core::Example#with_around_hooks
5.58 0.00 5.58 1 <unknown>
5.43 0.00 5.43 2 Rails::Application::RoutesReloader#reload!
5.00 0.00 5.00 1 <unknown>
5.00 5.00 0.00 1 Kernel#sleep
4.87 0.00 4.87 40 ActiveSupport.execute_hook
4.39 0.00 4.39 3 ActionDispatch::Routing::RouteSet#eval_block
4.38 0.00 4.38 2 Rails::Application::RoutesReloader#load_paths
在上面的输出,为什么我看到这两个因素,而不是Invoice.delay或类似的东西。实际上,当我用相同的JRUBY_OPTS(上面提到过)启动我的rails服务器(WEBrick)时,我所有的应用程序代码框在profiler输出中显示为未知元素!
我做错了什么?
答
看起来像你最大的配置文件方法限制 Set -Xprofile.max.methods JRUBY_OPTS
到一个很大的数字(默认是100000,永远不够)。例如。
export JRUBY_OPTS="--profile.flat -Xprofile.max.methods=10000000"
您如何从WEBrick获得输出? – Lelon 2012-03-20 00:45:46