問題タブ [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 - Mac OS X で Shark のように動作する Linux 用の同様のツールはありますか?
Mac OS X のSharkは、実行中のシステムでアプリケーションをプロファイリングするための優れたツールです。Linux 用の同様のツールはありますか?
OProfileの可能性があるように見えますが、使用した人はいますか?
c - oprofileから最も有用な出力を取得するための最良の方法は何ですか?
次のようなツールの使用:
- opreport
- opcontrol
- opannotate
私はこのツールを使い始め、プロファイリングを最大限に活用するための最良の組み合わせ、例を見つけようとしています。
ありがとう
android - AndroidのOProfile
誰かがAndroidでOProfileツールを使用しましたか...プロファイルを作成できる場合は、それを行うための基本的な手順とその他の構成またはセットアップを提供してください...
よろしく、バーラトパワール
c++ - Linuxタイムサンプルベースのプロファイラー
短縮版:
Linux用の適切な時間ベースのサンプリングプロファイラーはありますか?
ロングバージョン:
私は通常、OProfileを使用してアプリケーションを最適化します。私は最近、疑問に思う欠点を見つけました。
問題はタイトなループであり、c++filtを生成してc++名をデマングルしました。別のボトルネックを追いかけているときに、偶然にコードに出くわしただけです。OProfileはコードについて異常なことを何も示さなかったので、私はそれをほとんど無視しましたが、私のコードセンスは、呼び出しを最適化して何が起こったかを確認するように指示しました。popen
c++filtのをに変更しましたabi::__cxa_demangle
。実行時間は1分以上から1秒強になりました。約x60スピードアップ。
popen
呼び出しにフラグを立てるようにOProfileを構成する方法はありますか?プロファイルデータが存在するため、OProfileは、ボトルネックがヒープとstd::string
呼び出しであると見なします(ところで、最適化すると、ランタイムが1秒未満に短縮され、2倍以上高速化されます)。
これが私のOProfile構成です。
ボトルネックを見つけた可能性のあるLinux用の別のプロファイラーはありますか?
問題は、OProfileが現在実行中のプロセスにのみサンプルを記録することだと思います。プロファイリングしているプロセスに常にサンプルを記録してほしい。したがって、プロセスが現在切り替えられている場合(IOまたはpopen
呼び出しでブロックされている場合)、OProfileはブロックされた呼び出しにサンプルを配置するだけです。
これを修正できない場合、OProfileは、実行可能ファイルがほぼ100%のCPUをプッシュしている場合にのみ役立ちます。非効率的なブロッキング呼び出しがある実行可能ファイルには役立ちません。
performance - 選択したループの実行時間の測定
C プログラムで選択したループの実行時間を測定して、プログラム (Linux 上) の合計実行時間の何パーセントがこれらのループに費やされているかを確認したいと考えています。パフォーマンスを測定するループを指定できるはずです。ここ数日、いくつかのツール (vtune、hpctoolkit、oprofile) を試しましたが、どれもこれを行うようには見えません。それらはすべて、パフォーマンスのボトルネックを見つけて、それらの時間を表示するだけです。これは、これらのツールがしきい値 (~1ms) を超えた時間のみを保存するためです。したがって、1 つのループの所要時間がそれよりも短い場合、その実行時間は報告されません。
gprof の基本的なブロック カウント機能は、現在サポートされていない古いコンパイラの機能に依存しています。
またはそのようなものを使用して単純なタイマーを手動で作成できますgettimeofday
が、場合によっては正確な結果が得られません。例:
ここで、内側のループで費やされた合計時間を測定したいのでgettimeofday
、最初のループ内に呼び出しを入れる必要があります。そのgettimeofday
ため、それ自体が 1000 回呼び出され、独自のオーバーヘッドが発生し、結果が不正確になります。
performance - oprofileはコールグラフを生成できません
oprofileを使用してコールグラフを生成しようとしています。コンパイラはg++、プラットフォームはlinux x86-64、リンカーはgfortranです。
C ++コードは、-fno-omit-frame-pointerを使用してコンパイルされます。oprofileは--callgraph=25で始まります。--callgraphで実行したレポート。
コールグラフが作成されますが、自己時間のみが含まれているため、あまり使用されません
私は何が欠けていますか?
linux - Oprofileの基本的な疑問
ソフトウェア(Linux)をoprofileでプロファイリングしようとしています。私のソフトウェアは、ユーザースペースとカーネルモジュールの両方で構成されています。最初に私の疑問は、-separate =kernelオプションは何をするのかということです。そのオプションなしで実行した場合の違いは何ですか?私はそれを見ようとしましたが、違いを見つけることができませんでした。例を投稿していただけますか?
--seperate = kernelオプションなしでカーネルモジュールをプロファイリングできませんか?
ありがとう、バラ
profiling - oprofile が ARM でコールグラフを生成できない
これは実際にはこの SOの質問の正確な複製であり、残念ながら答えはありません。ARM で適切なコールグラフを取得することは可能ですか? パフォーマンス カウンターを持たない ARM926 で oprofile 0.9.6 を使用しているため、oprofile はデフォルトでタイマー割り込みを使用します。 --callgraph オプションを設定し、アプリを適切なフラグでコンパイルします。カーネルのプロファイルを作成しようとしているわけではありませんが、アプリから適切なコールグラフを取得するために、「framepointer」を有効にしてカーネルもコンパイルする必要があるかどうか疑問に思っていました。
ありがとう
profiling - 仮想マシンで実行されている Linux 上の oprofile
VirtualBox を使用して Linux Ubuntu 10.4 VM を実行しています。oprofile を使用して、仮想マシン内のアプリケーションのプロファイルを作成しようとしています。oprofile 0.9.6 をインストールしましたが、動作しません。起動しようとすると、次のエラーが表示されます。
VirtualBox がパフォーマンス カウンターへのアクセスを提供できるかどうかわからないので (ここでは疑問があるので、ポインターがあればそれは素晴らしいことです)、次のように oprofile をタイマー割り込みにデフォルト設定しました。
しかし、まだ機能しておらず、同じエラーが発生しています。VM で oprofile を実行することは可能ですか?
ありがとう