#topicpath ///////////////////////////////////////////////////////////////////////////////// * 目次 [#p37d612e] #contents(); ///////////////////////////////////////////////////////////////////////////////// * プロファリングとは [#k24b081a] - どの関数が(1)どれだけ処理時間を消費するか、(2)何度呼ばれているか、(3)どの関数を呼んでいる/どの関数に呼ばれているか、などを測定することをプロファイリングという。 - 上記を計測するツールを ''プロファイラ'' と呼ぶ。 ///////////////////////////////////////////////////////////////////////////////// * 調査ツール [#vb8b89ff] //=============================================================================== ** perf [#perf] //------------------------------------------------------------------------------- *** 使い方 [#i6f4783f] - debian では /bin/perf コマンド自体は最初から存在するが、実際の実行には linux-tools パッケージのインストールが必要になる。 - 実行 + 記録 $ perf record <executable-file> -- これでカレントディレクトリに perf.data というファイルが出来る。 + 結果確認 $ perf report //------------------------------------------------------------------------------- *** 参考リンク [#perf-links] - [[perfの使いかた>http://int.main.jp/txt/perf/]] - [[6.4.2. Perf の使用方法 (RedHat)>https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/perf-using.html]] - [[perf を使ってプロファイルする方法(その1)>http://d.hatena.ne.jp/pyopyopyo/20140702/p1]] //=============================================================================== ** gprof [#gprof] //------------------------------------------------------------------------------- *** 使い方 [#i6f4783f] + 計測対象となるプログラムをビルドする際、 gcc/c++ のオプションに ''-pg'' を渡して実行する。 + 上記でビルドしたプログラムを実行する + プログラムが終了すると、結果を格納した gmon.out というファイルが出力される。 + 結果をみる $ gprof <executable-program> gmon.out ///////////////////////////////////////////////////////////////////////////////// * 参考リンク [#z823753c] //------------------------------------------------------------------------------- *** 参考リンク [#gprof-links] - [[minus9d's diary - gprofを使いこなす>http://minus9d.hatenablog.com/entry/20140112/1389502918]] - [[プロファイラ(gprof)>http://nenya.cis.ibaraki.ac.jp/TIPS/gprof.html]] ///////////////////////////////////////////////////////////////////////////////// * 参考リンク [#i6772b45] - [[CPU利用率, 高負荷なプロセスの特定の仕方>http://qiita.com/stsn/items/061827aae14541d0153b]]