19

rake タスクのプロファイルを作成する必要があります。私は初心者なので、.rb コードを次のようにプロファイリングする方法しか知りません。ruby -Ilib -S ruby-prof -p graph_html profile.rb > profile.html

しかし、特定の Rake タスクをプロファイルするにはどうすればよいでしょうか?

4

3 に答える 3

19

Rakeは単なるRubyスクリプトであるため、他のスクリプトのプロファイルを作成するのと同じように、rakeに対してruby-profを呼び出すことができるはずです。

ruby-profを呼び出したら、次のことを試してください。

ruby -Ilib -S ruby-prof -p graph_html `which rake` TASK > profile.html

次のコマンドラインを使用しました。

ruby-prof -p graph_html /usr/local/bin/rake19 import_from_aws file=~/sourcedata batch=test1 > /tmp/profile.html

次の呼び出しをプロファイリングするには:

rake19 import_from_aws file=~/sourcedata batch=test1
于 2010-12-01T15:00:10.640 に答える
1

「粗い」プロファイリングが必要で、どのタスクがボトルネックであるかを知りたい場合は、Mike William の優れたコードをここから参照することをお勧めします。Rake タスクのプロファイリングを行っていたとき、これは見事に機能しました。

module Rake
  class Task
    def execute_with_timestamps(*args)
      start = Time.now
      execute_without_timestamps(*args)
      execution_time_in_seconds = Time.now - start
      printf("** %s took %.1f seconds\n", name, execution_time_in_seconds)
    end

    alias :execute_without_timestamps :execute
    alias :execute :execute_with_timestamps 
  end
end
于 2012-08-20T10:41:29.073 に答える