問題タブ [kcachegrind]
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.
python - kCacheGrind で Python プロファイル データを開くにはどうすればよいですか?
Mac で qcachegrind を使用してプロファイル データを調べるのに問題があります。django-extensions を使用してプロファイル データを生成しています。コードで cProfile を使用して通常のプロファイル ログを開くことはできますがpyprof2calltree
、 から生成された出力を開くことはできません/manage.py runprofileserver --prof-path=profile_data --use-cprofile --kcachegrind
。誰かがこれをうまく管理しましたか?
ruby-on-rails - Rails アプリの ruby-prof を使用して、KCacheGrind のコール ツリー プロファイリングをどのように出力しますか?
ドキュメントによると、Rails アプリをプロファイリングできます http://ruby-prof.rubyforge.org/
これをconfig.ruに追加しました
ただし、次のファイルのみを出力します
出力は完全に理解できません。そこで、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
c++ - kcachegrind: 次の関数に使用できるソースがありません
Ubuntu 12.04 を使用して注釈付きのソースを表示しようとしています (Mac OSX を使用しても同じ問題が発生し$ valgrind --tool=callgrind ./myProgram
ます) 。$ kcachegrind
$ qcachegrind
C++ スクリプトは、 ( などを介して) ファイルmyProgram.cpp
内に存在する関数を呼び出します。私は次のようにコンパイルします:.hpp
#include "../include/myHeader.hpp"
myProgram.cpp
そのサードパーティのライブラリの注釈付きソースを表示することは気にしません。
私が見たいのは 、関数 inmyHeader.hpp
と forの注釈付きソースですmyProgram.cpp
。
代わりに、呼び出されるすべての関数のリストを含む kcachegrind の Flat Profile ウィンドウが表示さmyHeader.hpp
れます。現在、kcachegrind は関数の場所を frommyHeader.hpp
としてレポートしますmyProgram
-これは奇妙です。最後に、フラット プロファイル ウィンドウから任意の関数を選択し、ソース コードを表示するように要求すると、次のメッセージが表示されます。
私が試したこと:
myHeader.hpp
kcachegrind の GUI を使用して、ディレクトリ保持を Annotations リストに追加しました。-O0 を使用してコンパイルし、コンパイラの最適化を削除します
performance - KCachegrind: コマンドが見つかりません
次のコマンドを使用して、Centosに valgrind をインストールしました。
次に、C++ プログラムに callgrind ツールを使用しました。callgrind.out.42424 ファイルを生成しました。
ここで、次のコマンドを使用して KCacheGrind でこのファイルを開きたいと思います。
しかし、端末は言う
bash kcachegrind : コマンドが見つかりません
インストール中にこのエラーが発生する理由がわかりません。このコマンドを実行するには、特定のディレクトリにいる必要がありますか?
c++ - kcachegrind からの結果を解釈する方法
kcachegrind の結果に関心を持たせる方法を教えてください。
コードの 2 つのバージョン (v1、v2) を両方ともデバッグ モードでコンパイルしました。オプションを指定して valgrind を実行しました。
valgrind --tool=callgrind -v ....
このようにして生成された出力ファイルは、kcachegrind で開かれます。現在、コードのバージョン v2 が最初のバージョンである v1 よりも高速に実行されることが既にわかっています。しかし、どうすれば kcachegrind のコール グラフから結果を取得できますか。
kcachegrindAll Callers
タブには、次の列がありますIncl. , Distance, Called, Caller
。
IIUC でCalled
ありcaller
、「発信者」がプログラムで呼び出された回数です。しかし、私は他の人について知りません。
もう 1 つのことは、特定の機能を選択してから「呼び出し元」タブを選択すると、さらに情報が表示されることです。Ir, Ir per call, count, caller
および [タイプ] タブ: `EventType, Incl. セルフ、ショート、フォーミュラ。
私はここで何の考えも持っていません。
これまでのところ、私はこれらの質問を読みました:
c++ - KCacheGrind の灰色の点の意味
プロファイリングを行ったところ、KCacheGrind が小さな灰色の点への矢印を視覚化していることがわかりました。どういう意味ですか?
linux - Cachegrind は関数レベルの結果を表示しませんか?
このターミナル ラインを使用して、Valgrind の Cachegrind で C++ アプリケーションをプロファイリングしています。
私が見たオンラインガイドから、これは関数レベルのプロファイリング結果を自動的に提示するはずです。ただし、プログラム レベルの結果しか得られません。
各関数の結果を表示するには、他に何を指定する必要がありますか?
アップデート
これを実行する必要がありました:
関数レベルの結果を取得します。