perf 是用來進行軟件性能分析的工具。經過它,應用程序能夠利用 PMU,tracepoint 和內核中的特殊計數器來進行性能統計。函數
它不但能夠分析指定應用程序的性能問題,也能夠用來分析內核的性能問題,固然也能夠同時分析應用代碼和內核,從而全面理解應用程序中的性能瓶頸。工具
perf list性能
使用 perf list 命令能夠列出全部可以觸發 perf 採樣點的事件。spa
perf stat <program>code
整體分析blog
perf top進程
用於實時顯示當前系統的性能統計信息。該命令主要用來觀察整個系統當前的狀態,好比能夠經過查看該命令的輸出來查看當前系統最耗時的內核函數或某個用戶進程。事件
perf recordio
perf record -a -e cycles -o cycle.perf -g sleep 10
-a 對全部 CPU 採樣性能分析
-o 輸出文件名,若是不指定,默認生成 perf.data
-g 額外記錄函數調用關係
sleep 10 採樣 10s
perf report
perf report -i <file>
-i 指定 perf record 生成的 perf data 文件,若是不指定 -i 則默認分析 perf.data 文件。
--max-stack=0 只輸出第一層函數調用
--stdio 輸出到標準輸出