問題タブ [callgrind]
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.
windows - Windows Callgrind 結果ブラウザー、KCacheGrind の代替
KCacheGrind 以外に、callgrind の結果を表示できるツールはありますか? できれば Windows プラットフォーム向けですか?
linux - kcachegrind のコンソール代替?
Kcachegrind は素晴らしく、私のお気に入りのツールの 1 つですが、リモート サーバーのターミナル (ssh などを使用) で実行できないことが時々あります。
VNC または X サーバーの転送をセットアップできることは知っていますが、単純なものが必要な場合は非常に扱いにくいです。
kcachegrind コンソールの代替手段 (ncurses ベースなど) はありますか?
profiling - callgrind の通話プロファイルを評価するツールは?
この質問に関連して、callgrind で作成されたプロファイリング データを評価するためにどのツールをお勧めしますか?
グラフィカル インターフェイスを備えている必要はありませんが、簡潔で明確で解釈しやすい方法で結果を準備する必要があります。たとえば については知ってkcachegrind
いますが、このプログラムには、表示されているテーブルのデータエクスポートや、単に表示から行をコピーするなどの機能がありません。
multithreading - callgrind/kcachegrindを使用してスレッドごとの統計を取得する
アプリケーションの各スレッドがcallgrindをどのように「高価」に使用しているかを確認したいと思います。--separate-thread=yes
アプリ全体のcallgrindファイルとスレッドごとに1つのcallgrindファイルを提供するオプションを使用 してプロファイルを作成しました。
これは特定のスレッドのプロファイルを表示するのに便利ですが、私が本当に必要としているのは、各スレッドからのCPU時間のソートされたリストであり、どのスレッドが最大の豚であるかを確認できます。
profiling - callgrindを使用して、プログラム実行の特定の期間のみをプロファイリングするにはどうすればよいですか?
プログラムを再構築する必要がないので、valgrindを使用してプロファイリングを行いたいと思います。(プロファイリングしたいプログラムはすでに「-g」でビルドされています)
しかし、valgrind(callgrind)は非常に遅いです...だから私がすることは次のとおりです:
- サーバーを起動します(そのサーバーのプロファイルを作成します)
- そのサーバーへの接続の種類
- サーバーで操作を行う前に、プロファイルデータの収集を開始します
- 操作が完了したら、プロファイルデータの収集を終了します
- プロファイリングデータを分析します。
Solarisのsunstudioを使用してこの種のことを行うことができます。(dbxを使用)。valgrind(callgrind)を使用して同じことを行うことは可能ですか?
ありがとう
callgrind - callgrind : 行が実行されたかどうかを確認する方法
callgrind を使用して gcov/lcov のような出力を生成することは可能ですか? callgrind_annotate の正確なオプションが見つからないドキュメントを読んでいます
c - callgrind にソース行情報をダンプさせるにはどうすればよいですか?
リアルタイムのオーディオ処理を行う GNU/Linux 上の共有ライブラリをプロファイリングしようとしているので、パフォーマンスが重要です。システムのオーディオ入力と出力に接続する別のプログラムを実行し、callgrind でプロファイルします。
KCacheGrind の結果を見ると、どの関数が最も多くの時間を占めているかについての優れた情報が得られます。ただし、行ごとの情報を表示することはできません。代わりに、デバッグ シンボルを使用してコンパイルし、プロファイリングを再度実行する必要があると表示されます。
私がプロファイリングしているプログラムは、デバッグ シンボルを使用してコンパイルされていませんが、ライブラリはコンパイルされています。興味深いことに、 cachegrindのソース コード アノテーションは正常に機能するため、私はこれを知っています。
callgrind を実行すると、デフォルトではソース行情報をダンプすると表示されますが、実際にはそうしていません。それを強制する方法、または何がそれを止めているのかを理解する方法はありますか?
fork - callgrind 関数名が子プロセスに表示されない
プロセス B をフォークするプロセス A があります。A と B は異なるアプリケーションです。どちらも -g フラグでコンパイルされています。
callgrind で実行するには、次のコマンドを使用します: valgrind --tool=callgrind --trace-children=yes ./A [params]
親プロセス (A) の callgrind.out.xxx には、関数名が含まれています。子プロセス (B) の場合 - 含まれていません。ここで何が問題なのですか?
ありがとう
java - javaのcallgrindに相当しますか?
Javaに相当する無料のコールグラインドはありますか? 基本的に、Javaコードの各メソッドと関数に費やされたサイクル数または時間を与えるものは何でも必要です。
私はMacを使用していることに言及する必要があると思います。つまり、以下のEclipseは機能しないと思います。
c - サンプリングプロファイラーとしてcallgrindを使用しますか?
Linuxサンプリングプロファイラーを探していましたが、callgrindが最も有用な結果を表示するようになりました。ただし、オーバーヘッドは通常より20〜100倍遅いと推定されます。さらに、私は関数ごとに費やされる時間にのみ関心があります(他のプロファイラーが忠実に表示しない、read()
やなどの呼び出しのブロックに特に重点を置いています)。write()
- 余分なオプションをオフにして、さまざまなコールスタックで費やされる時間を生成するために最小限のデータだけが記録されるようにする方法はありますか?
- callgrindのcachegrindの遺産は、キャッシュプロファイリングなどに関して過剰な処理が行われていることを意味しますか?
- callgrindはデバッガーのように動作すると思います。これを調整して、すべての命令ではなく、間隔を置いてプロセスをサンプリングできますか?