安裝oprofile,而後加載內核模塊。#modprobe oprofile,模塊加載後開始使用oprofile。linux
1. 首先設置監視內核,使用debuginfo提供的內核,/boot下面的內核沒法使用網絡
#opcontrol --vmlinux=/usr/lib/debug/boot/vmlinux-xxxxx函數
若是不須要監視內核debug
#opcontrol --no-vmlinuxmodule
2. 啓動oprofilefile
#opcontrol --startbug
3. 運行被監視的應用程序
# program runcpu
4. dump監視數據數據
#opcontrol --dump
5. 關閉 oprofile
#opcontrol --shutdown
關閉後並對程序進行分析後能夠清除上一次的監視數據
#opcontrol --reset
6. 查看結果
#opreport
或者
#opannotate -s [ -p /usr/lib/debug ]
上面這條命令能夠讓你查看到代碼中的哪一個函數的哪條語句被cpu執行次數最多,極可能就是最耗時的地方。
若是你要監視本身的模塊那麼,須要把*.ko放入到/usr/lib/debug中debug kernel的目錄中。我本身的驅動程序和網絡相關,
因此放到了/usr/lib/debug/lib/modules/2.6.32-xxxx/kernel/drivers/net/igb/ 目錄下,當你使用上面的命令時
#opannotate -s -p /usr/lib/debug
就會打印出你模塊代碼中的語句的執行狀況。opreport -l 的使用相似,也能夠使用-p選項。