0

Rails 2.2.2 を実行しています。ruby-prof と Rails アプリのプロファイリングに関する記事をいくつか読みました。そして、物事が実際にどのように機能しているのか混乱しています。

私はもともとこのチュートリアル http://snippets.aktagon.com/snippets/255-How-to-profile-your-Rails-and-Ruby-applications-with-ruby-prof を使用してアプリのプロファイリングを行っていましたが、機能します。これには、独自のプロファイル環境を作成して実行することが含まれます> RAILS_ENV=profiling ./script/performance/request -n 100 profiling/homepage.rb

だからここに私の混乱があります。どういうわけか、これは ruby​​-prof を実行し、すべての統計情報などを開きますが、実際に ruby​​-prof が呼び出された場所はどこにもありません。

それで、さらに読んでみると、2.2.2にはベンチマーク/プロファイリングが組み込まれているようです。そのため、パフォーマンスセクションにテストファイルを次のように記述します

require 'test_helper'
require 'performance_test_help'

# Profiling results for each test method are written to tmp/performance.
class BrowsingTest < ActionController::PerformanceTest
  def test_worksheet
    get '/reduction/worksheet'
  end
end

そして走る

レーキ テスト:プロファイル

これは私が上で行っていたことと同じですが、今では Rails フレームワーク全体に統合されていますか?

私の次の質問はこれです。元のスクリプトはフラット ファイルと html ファイルを出力しましたが、KCacheGrind (私の場合は MacCallGrind) でツリー ファイルを自動的に開く方法もわかりませんでした。スクリプト呼び出しにフォーマットを追加できますか?

編集: rake テストでスクリプトを実行すると、実際にツリー ファイルが生成されるようです。ただし、Mac CallGrind は、解析しようとするとハングするようです。これらのツリー ファイルを表示するための他のツールを知っている人はいますか?

4

2 に答える 2

1

結局のところ、それはまったく同じです。古いチュートリアルを読んでいたに違いありません。すべてのベンチマークとプロファイリングが Rails で行われるようになりました。これは素晴らしいことです。また、txt、html、tree ファイルも出力されます。MacCallGrind のみが機能する場合、ツリー ファイルを表示するためだけに必要な 4 GB の KDE パッケージをインストールする方法はありません。

于 2009-04-28T16:19:12.763 に答える
1

ブラッド、MacCallGrind の作成者に連絡して、更新があるかどうか、またはファイルの修正があるかどうかを確認する必要があります。

ああ、そうです、それは私です。近々アップデートが公開されるので、richard (symbol aggmedia.net) にメールしてください。Ruby/Rails のサポートを利用できるようにしたいと思っています。

于 2009-05-27T12:13:37.170 に答える