プログラムのボトルネックがどこにあるのか、なんて調べるときには計測する必要がありますね。プログラム中の特定処理の前後でrdtsc命令使って時間を計測して処理時間を求める、とかそういうこともできるんですけど、まあめんどうじゃないですか。プロファイラを使いましょう。 プロファイラとはなんぞや、Wikipediaの性能解析のページに色々書いてますね。 そういうわけでOProfileというLinuxで動くプロファイラを使っているので、未来の自分とか「OProfile動かしてみてーけどさっぱりわからん!」みたいな人のためにまとめておきます。 OProfileの特徴 OProfileは 計測したいプログラムに対して特別な処理をしなくてもいい 低レイヤーの情報も計測できる gprof形式のコールグラフも表示できる オーバーヘッドがとても小さい これらの特徴があるらしいです。使ってみて特に嬉しいと感じたの
2020-07-20 OProfile 1.4.0 released OProfile 1.4.0 has been released. This release adds support for Marvell (Cavium) ThunderX2 and Hygon Dhyana CPU. This release also fixes issues with OProfile being unable to be built with newer versions of binutils and ensures that ocount does not leave orphan processes when an error occurs. 2018-07-16 OProfile 1.3.0 released OProfile 1.3.0 has been released. Thi
UNIX系OSでプログラミングをしていて、性能面で悩んだときには、gprofというプロファイラを使うと、簡単にプログラム中の関数呼び出し回数や関数実行時間などを測定することができます。gccのオプションに-pgをつければ良いだけということでとても簡単で便利です。 ところが、gprofで測定できるのは、あくまでもプログラム自体の処理だけで、カーネルやドライバまで含めた測定はできません。 このところ、ネットワークプログラムの10Gイーサーでの性能向上をしているのですが、10Gクラスになるとプログラム自体の処理はもちろんですが、カーネル内の処理やデバイスドライバでの処理もかなり大きな影響がでてきます。特に、ネットワークでの通信は、ネットワークデバイスでの出入りは並列化できなかったり、パケットの順序を入れ替えられないことがほとんどなど、どれだけCPUが並列処理に強くなっても、ネットワーク関連の処理
Linux Perf Profiling¶ dartはperfと連携し、実行時の情報を含めてprofilingすることができます。 以下のURLでも紹介されています。 http://code.google.com/p/dart/wiki/Profiling 試し方 $ perf record -f -g dart --generate_perf_events_symbols aobench.dart $ perf report --call-graph flat JITコンパイルしたコードのプロファイル情報を取得できており、ボトルネックの調査がしやすくなっています。 perfで測定時は、dartに–generate_perf_events_symbolsオプションを指定しない場合、 Dart VMは単体のプロセスとしてperfの解析対象となります。 以下のような味気ないプロファイル結果にな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く