3

ドキュメントによると、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=推奨

これらのファイルは読み取られません。ruby-prof docs には、KCacheGrind ファイルを生成できると書かれています

RubyProf::CallTreePrinter - KCachegrind と互換性のあるコール ツリー レポートを作成します。

しかし、Rails でそれを行う方法については触れていません。RubyProfのページを見てみましたが、空っぽでした。 http://ruby-prof.rubyforge.org/classes/Rack/RubyProf.html

ルビー 2.0.0、レール 4.0.3

4

2 に答える 2

0
  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
于 2014-03-08T02:15:03.880 に答える