gpt4 book ai didi

ruby-on-rails - 如何使用 Rails 应用程序的 ruby​​-prof 输出 KCacheGrind 的调用树分析?

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:24 24 4
gpt4 key购买 nike

根据文档,您可以分析 Rails 应用程序 http://ruby-prof.rubyforge.org/

我把这个添加到我的 config.ru

if Rails.env.development?
use Rack::RubyProf, :path => 'tmp/profile'
end

但是它只输出以下文件

users-1-call_stack.html
users-1-flat.txt
users-1-graph.html
users-1-graph.txt

输出完全无法理解。所以我下载了 Windows 版 QCacheGrind。 http://sourceforge.net/projects/qcachegrindwin/?source=recommended

它不会读取任何这些文件。 ruby-prof 文档说您可以生成 KCacheGrind 文件

RubyProf::CallTreePrinter - Creates a call tree report compatible with KCachegrind.

但它不会说明如何使用 Rails 来完成。我查看了 RubyProf 的页面,但它是空的。 http://ruby-prof.rubyforge.org/classes/Rack/RubyProf.html

ruby 2.0.0, rails 4.0.3

最佳答案

  helper_method :profile
around_action :profile, only: [:show]

def profile(prefix = "profile")
result = RubyProf.profile { yield }

# dir = File.join(Rails.root, "tmp", "profile", params[:controller].parameterize)
dir = File.join(Rails.root, "tmp", "profile")
FileUtils.mkdir_p(dir)
file = File.join(dir, "callgrind.%s.%s.%s" % [prefix.parameterize, params[:action].parameterize, Time.now.to_s.parameterize] )
open(file, "w") {|f| RubyProf::CallTreePrinter.new(result).print(f, :min_percent => 1) }
end

关于ruby-on-rails - 如何使用 Rails 应用程序的 ruby​​-prof 输出 KCacheGrind 的调用树分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com