如何将 Ruby stdlib 分析器与 Jruby 一起使用?
我正在尝试使用 Ruby 的标准 lib profiler,但我没有使用 ruby-prof,因为这是一个 jruby 项目。
不过,我总是得到类似的东西:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
0.00 0.93 0.00 1 0.00 930.00 #toplevel
生成这个的代码是:
require 'profiler'
Profiler__.start_profile
# profiling_result = RubyProf.profile do
result= handle_request
# end
#Profiler__.stop_profile
# printer = RubyProf::FlatPrinter.new(result)
File.open("#{File.dirname(__FILE__)}/profiler/#{Time.now.to_i}.flat","w") do |f|
Profiler__.print_profile f
end
Profiler__.stop_profile
I am trying to use Ruby's standard lib profiler, and I am not using ruby-prof because this is a jruby project.
Though, I am allways getting something like:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
0.00 0.93 0.00 1 0.00 930.00 #toplevel
The code that generates this is:
require 'profiler'
Profiler__.start_profile
# profiling_result = RubyProf.profile do
result= handle_request
# end
#Profiler__.stop_profile
# printer = RubyProf::FlatPrinter.new(result)
File.open("#{File.dirname(__FILE__)}/profiler/#{Time.now.to_i}.flat","w") do |f|
Profiler__.print_profile f
end
Profiler__.stop_profile
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我强烈建议使用 JRuby 内置分析器,详细信息如下: http://danlucraft.com/blog/2011/03/built-in-profiler-in-jruby-1.6/
stdlib 分析器使用 Ruby 的功能,该功能会产生巨大的性能命中(set_trace_func 等)。使用内置分析器您将获得更好的结果,从而避免此类开销。
I would strongly recommend using the JRuby built-in profiler, detailed here: http://danlucraft.com/blog/2011/03/built-in-profiler-in-jruby-1.6/
The stdlib profiler uses feature of Ruby that incur a tremendous perf hit (set_trace_func, among others). You'll get better results using the built-in profiler, which avoids such overhead.