問題タブ [oprofile]
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.
linux - Oprofile と gprof の出力は同じコードでも異なります
コード AMD optron 6270 マシンを実行しています。OSはCentos 6.2リリースです。私は簡単なプログラムを作成しました
gprof と Oprofile を使用してこのコードをプロファイリングします。さまざまな報告を受けました。gprof を使用して main.exe を 2 回実行するとします。gprof Flat プロファイルを使用した最初のレポート:
各サンプルは 0.01 秒としてカウントされます。
gprof による 2 回目のレポート
フラットプロファイル:
各サンプルは 0.01 秒としてカウントされます。
% 累積セルフ セルフ 合計
時間 秒 秒 コール s/コール s/コール名
両方のレポートは異なります。main.exe を実行するたびに、さまざまなプロファイリング レポートが表示されます。Oprofile を試したところ、次のように異なる結果が得られました。
Oprofile report1 サンプル ディレクトリに /var/lib/oprofile/samples/ を使用します。警告: /no-vmlinux が見つかりませんでした。CPU: AMD64 ファミリ 15h、速度 2.2e+06 MHz (推定) ユニット マスク 0x00 (ユニット マスクなし) で CPU_CLK_UNHALTED イベント (CPU クロックが停止していない) をカウント 100000 をカウント
Oプロファイルレポート2
サンプル ディレクトリに /var/lib/oprofile/samples/ を使用します。警告: /no-vmlinux が見つかりませんでした。CPU: AMD64 ファミリ 15h、速度 2.2e+06 MHz (推定) ユニット マスク 0x00 (ユニット マスクなし) で CPU_CLK_UNHALTED イベント (CPU クロックが停止していない) をカウント 100000 をカウント
サンプル % 画像名 シンボル名
なぜこれが起こるのか誰か教えてもらえますか?これを引き起こす可能性のある理由は何ですか? この状況を回避して、一定のプロファイリング結果を得るにはどうすればよいですか?
c++ - oprofile 出力からコールスタックを取得するには?
私は困惑している。oprofile がプロファイリング レポートからスタック トレースを提供できるかどうかはわかりません。私は oprofile マニュアルを見直してきましたが、ログに記録できると言ってスタックトレースを参照しているだけですが、その方法の例は示していません。
ここに私のtest.cppがあります
コンパイルに使用したコマンドは次のとおりです。
そして、これが私の perf.sh スクリプトです (VM の RHEL 6.2 で実行):
現時点で私が得ているレポートは次のとおりです。
そして、私の質問: スタック トレースをプロファイリング レポートに表示するにはどうすればよいですか?
tizen - Opreport に結果が表示されない
http://lbrandy.com/blog/2008/11/oprofile-profiling-in-linux-for-fun-and-profit/チュートリアルによると、次のコマンドを使用して oprofile の結果を確認しようとしています。
そして私も試しました:
そして私が得るのはこれだけです:
これらの奇妙なメッセージの理由を知っている人はいますか?
performancecounter - oprofile からのより明確なラベル付け
oprofile スイートのツールを使用して、ocount
3 つの異なる HW パフォーマンス カウンターをカウントしています。
問題は、3 つのカウンターがプレフィックスを共有しているため、出力がうんざりするほどあいまいなことです。
コマンド ラインの順序は正しいのですが、他のカウンターで実験を行っているときにこれらすべてをファイルにダンプすると、どのカウンターが何なのかわからなくなる可能性があります。
マンページを見るとocount
、完全なイベント名を強制する方法がわかりません。
追加:
ソースを見ると、上記の 3 つのイベントは同じカウンターの単なるマスクであり、ソースの count-printing セクションはマスク名ではなくイベント名のみを処理しているように見えるため、これが実際に可能かどうかはわかりません。
悲しいかな(しかし、間違っていることが証明されるのが大好きです)。
android - Android デバイスでの Oprofile エラー。oprofiled: 渡されたイベントが多すぎます
MDP で oprofile を使用しています。Android 4.3 ユーザーデバッグ バージョン。
#opcontrol --setup
#oprofiled --vmlinux=/data/vmlinux --kernel-range=c00080ernel-range=c00080 --event=CPU_CYCLES
oprofiled: 渡されたイベントが多すぎます。
# opcontrol --status
ドライバーディレクトリ: /dev/oprofile
セッション ディレクトリ: /data/oprofile
カウンター 0: 名前: CPU_CYCLES カウント: 150000 カウンター 1: 名前: CPU_CYCLES カウント: 150000 カウンター 2 無効
oprofiled が実行されていません
ただし、指定するイベントは 1 つだけです。oprofiled が「渡されたイベントが多すぎる」と言う理由