LoginSignup
3
3

More than 5 years have passed since last update.

oprofileメモ

Posted at

oprofileについてのメモ(随時加筆予定)

Ubuntu での実行

参考: http://smackerelofopinion.blogspot.jp/2013/05/getting-started-with-oprofile-on-ubuntu.html

インストール

$ sudo apt-get install oprofile

vmlinuxのインストール

oprofileを実行するにはvmlinuxを指定する必要があるが、Ubuntuには標準で用意されていないため、別途インストールする必要がある。

$ echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ddebs.list  
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01  
$ sudo apt-get update  
$ sudo apt-get install linux-image-$(uname -r)-dbgsym  

容量が大きいのでインストールに時間がかかる。(自分の環境では2時間ほど)

前準備

oprofileにvmlinuxのありかを教える。

$ sudo opcontrol --vmlinux=/usr/lib/debug/boot/vmlinux-$(uname -r)

設定は/root/.oprofile/daemonrcに書き込まれるため次回からは指定不要。

デーモンoprofiledを起動する。

$ sudo opcontrol --init
$ sudo opcontrol --start

start時に以下のエラーが出ることがある。

$ sudo opcontrol --start
Cannot find event CPU_CLK_UNHALTED
Using default event: CPU_CLK_UNHALTED:100000:0:1:1
Cannot find event CPU_CLK_UNHALTED

上記のように出てoprofiledが起動できない時は以下を行う。

$ sudo opcontrol --deinit 
$ sudo modprobe -r oprofile
$ sudo modprobe oprofile timer=1

プロファイル実行

例えばQt5のexampleにあるopenglwindowをプロファイルしてみる

$ sudo opcontrol --start
$ /usr/local/examples/gui/openglwindow
$ sudo opcontrol --dump

再度プロファイルするときはstartの代わりにresetをすれば良い。

$ sudo opcontrol --reset

プロファイル結果参照

プロファイル結果の参照にはopreportを使用。

opreportにはいろいろなオプションがある。
例えばコールグラフを見る場合は以下のとおり。

$ opreport -c

終了

oprofiledの終了はshutdownでおこなう。

$ sudo opcontrol --shutdown
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3