問題タブ [ruby-prof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2824 参照

ruby-on-rails - rails ruby​​-prof とベンチマークテスト

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にはベンチマーク/プロファイリングが組み込まれているようです。そのため、パフォーマンスセクションにテストファイルを次のように記述します

そして走る

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

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

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

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

0 投票する
2 に答える
444 参照

ruby - ルビーアプリケーションをプロファイリングするときに、無関係なメソッドを無視することは可能ですか?

グラフ-htmlモードで印刷されたruby-profを使用している間、1つの方法のレポートには(多少の切り取りがあります)と書かれています。

明らかに、それHash#eachは長い時間がかかることではありませんが、 yieldHash#each内のブロックです。

Hash#eachのレポートを見ると、Hash#eachを使用するものによって呼び出されたすべてのコードがレポートされるため、混乱を招きます。

ClassName#method_name生成されたコードに関する情報をのレポートに入れるようにruby-profに依頼することは可能ですか?

フラットプロファイルの使用min_percentまたは切り替えは役に立たないようです。

0 投票する
2 に答える
912 参照

ruby-on-rails - プロファイルメモリ-Railsプロジェクトの一部のパフォーマンス

私のrails-projectの重要なライブラリクラスのプロファイルの使用法をテストしたいと思います。ActiveRecordを使用しているため、プロファイルを作成するにはすべてのRailsの依存関係が必要です。

私の知る限り、スクリプト/プロファイルとスクリプト/ベンチマークがメモリ使用量を追跡できるように、パッチを適用したルビー(rubygc)が必要です。この公式ガイドに従って、ruby 1.8.6(p399)と1.8.7(p248)のソースコードにパッチを適用しようとしましたが、どちらも次のメッセージで失敗します。

また、ruby-profを使用しようとしましたが、常に「初期化されていない定数RubyProf::Test」というエラーが発生します。gemの「memory」の使い方がわからず、「memprof」も「bleak_house」も正常にインストールできませんでした。

パッチを当てたルビーを実行している場合は、問題ないはずです。しかし、ライブラリクラスのメモリをプロファイリングする他の可能性は大歓迎です。助けてくれてありがとう!

0 投票する
2 に答える
1334 参照

ruby - 低オーバーヘッドの Ruby プロファイリング?

タスクを完了するのに約 4 分かかる Ruby プログラムがあり、1 分未満に短縮したいと考えています。

gem から ruby​​-prof を試してみましたが、有効にすると実行時間が最大 30 分に増加し、単調性を特にうまく維持しているようには見えません (いくつかの変更により、プロファイラーを使用した場合のパフォーマンスが確実に向上し、プロファイラーを使用しない場合のパフォーマンスが確実に低下します)。このタスクは、独立して意味のあるプロファイリングが可能な部分に分解することもできません。

Rubyコードを最小限のオーバーヘッドでプロファイリングする現在の最良の方法は何ですか?

私は OSX を使用していますが、何らかの理由でプロファイラーが別の OS を必要とする場合は、再起動することがあります。

EDIT:perftools.rbオーバーヘッドははるかに低いですが、結果は正直言ってかなり疑わしいように見えます.合理的なサンプリングエラーの範囲外です.少なくともGCやI/Oバッファリングなどをいじっている必要があり、多くのばかげた誤解を引き起こしています. それでも ruby​​-prof を凌駕します。

誰かがそれ以上のことを知っている場合に備えて、質問を開いたままにします。

0 投票する
1 に答える
1349 参照

ruby-on-rails - Railsのパフォーマンステストが失敗しています

簡単なパフォーマンス テスト。ruby-prof をインストールしましたが、他に欠落している gem はありません。

rake test:profile は次のエラーを返します。

テストは簡単です。

environment.rb の 18 行目はシンプルです。

ここにカスタムロガーがありますhttp://pastie.org/1224832 なぜここで咳をしているのですか?

これは、Rails 2.3.5 の REE 1.8.7 です。

0 投票する
4 に答える
18731 参照

ruby - Rubyコードのプロファイリング

ruby-profとコアBenchmarkクラスの他に、Rubyコードのプロファイリングに何を使用しますか?特に、コードのボトルネックをどのように見つけますか?コードのどこですべての時間が費やされているかを把握するためだけに、自分の小さなツールで作業する必要があるように感じます。

ruby-profがこれを提供していることは理解していますが、出力は率直に言って非常に紛らわしく、自分のコードの実際のブロックが問題の原因であるかどうかを簡単に見つけることができません(どのメソッド呼び出しに最も時間がかかったかがわかります)けれど)。ですから、私はそれを私が望むほど多くは得られておらず、実際にそれを利用することができていません。

おそらく私はそれを間違っていますか?代替案はありますか?グーグル検索は私にとって何ももたらさない。

0 投票する
3 に答える
3973 参照

rake - Rake タスクのプロファイリング方法

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

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

0 投票する
3 に答える
6098 参照

ruby - 1.9.2 で Ruby コードをプロファイリングするにはどうすればよいですか?

1.9.2 でコードをプロファイリングするには何を使用できますか? ruby-prof のすべてのバージョンで、1.9.2 に対して segfault が見つかりました。

たとえば、追加すると

私のRailsプロジェクトのGemfileに移動して実行します

セグメンテーション違反が発生します。

町に新しいプロファイリングの宝石はありますか? ruby-prof のプレイを快適にする方法はありますか?

0 投票する
1 に答える
9047 参照

ruby - ruby-prof の出力を理解する

プログラムの 1 つで ruby​​-profiler を実行しました。各フィールドの意味を理解しようとしています。すべてが CPU 時間 (壁時計時間ではない) だと思いますが、これは素晴らしいことです。「---」の意味を理解したい。そこにある種のスタック情報がありますか。コール a/b とはどういう意味ですか?

0 投票する
5 に答える
988 参照

ruby - Mutexスリープは多くのCPUを使用しています

私は自分のイベントマシンベースのアプリケーションをruby-profでプロファイリングし、次のことを興味深いと感じました。

ruby-profはCPUティックのみをカウントするため、ミューテックススリープにCPU時間がかかる理由を理解できません。ファイバー時間にはカウントされず、カーネルレベルでスリープすると思います。何か案は?さらに良いことに、Mutex#sleepがイベントマシンに制御を解放して、他のことを実行できるようにしたいと思います。