Linux下的應用程式效能分析 總結
Linux下的應用程式效能分析,根據核心程式和應用程式的不同,下文分兩類進行描述。
我們側重的是應用級別的程式,推薦google perf tool/kcachegrind組合
一、和核心有關的工具
既可以處理核心,又可以處理應用的程式,但安裝需要對核心程式碼有處理,所以有些麻煩
(一)Perf
#1 必須在root下編譯
# perf
pushd /usr/src
bzip2 -d linux-source-2.6.32.tar.bz2
tar -xvf linux-source-2.6.32.tar -C .
popd
pushd /usr/src/linux-source-2.6.32/tools/perf
make
make install
popd
cp -f /root/bin/perf /usr/bin/.
perf --version
Perf -- Linux下的系統效能調優工具
http://www.ibm.com/developerworks/cn/linux/l-cn-perf1/
http://www.ibm.com/developerworks/cn/linux/l-cn-perf2/
(二)Oprofile
oprofile 在 Linux 上分兩部分,一個是核心模組 (oprofile.ko) ,一個為使用者空間的守護程式 (oprofiled) 。前者負責訪問效能計數器或者註冊基於時間取樣的函式 ( 使用 register_timer_hook 註冊之,使時鐘中斷處理程式最後執行 profile_tick 時可以訪問之 ) ,並取樣置於核心的緩衝區內。後者在後臺執行,負責從核心空間收集資料,寫入檔案。
http://blog.csdn.net/yili_xie/article/details/4925648
http://www.ibm.com/developerworks/cn/linux/l-oprof/
(三)LTTNG
The LTTng project aims at providing highly efficient tracing tools for Linux. Its tracers help tracking down performance issues and debugging problems involving multiple concurrent processes and threads. Tracing across multiple systems is also possible.
Apart from LTTng's kernel tracer and userspace tracer, viewing and analysis tools are part of the project. The LTTV viewer permits to analyze and show traces, both in text format and graphically.
二、應用工具
(一)Gprof (kprof)
主要的步驟:
1.在程式編譯時選擇-g -pg選項,插入必要的資訊
2.執行程式後輸出gmon.out資訊
3.檢視gmon.out,可以看到相關的資訊
這個的效果不太好
http://blog.csdn.net/stanjiang2010/article/details/5655143
(二)google perf tool (kcachegrind)
#gperftools-2.1 說明文件說明了在64下的問題
tar -xzvf libunwind-1.1.tar.gz -C .
#libunwind 0.99 1.0.1 編譯錯誤
pushd libunwind-1.1
./configure --prefix=/usr
make
make install
popd
rm -r -f libunwind-1.1
#gperftools-2.1
tar -xzvf gperftools-2.1.tar.gz -C .
pushd gperftools-2.1
./configure --prefix=/usr
make
make install
popd
rm -r -f gperftools-2.1
程式中插入效能的資訊
ProfilerStart("demo.prof");
benchPasrer = boost::make_shared<antlr::AntlrMSSQLParser>();
for(int i=0; i< 1000; i++){
demo();
}
ProfilerStop();
檢視
pprof –text demo demo.prof --lines
pprof --text demo demo.prof --functions
和kcachegrind 整合在一起,圖形檢視
% pprof –callgrind demo demo.prof > demo.callgrind
% kcachegrind demo.callgrind
https://code.google.com/p/gperftools/
http://www.road2stat.com/cn/r/rprofiling.html
(三)Valgrind
http://www.cnblogs.com/2018/p/3228174.html
http://www.cnblogs.com/2018/p/3230736.html
詳細資料參考
http://ajsm5iagih.l6.yunpan.cn/lk/Qn2w6bg4BgZqU 工具_Linux程式效能剖析.doc
相關文章
- 嵌入式linux應用程式移植方法總結Linux
- linux下查詢程式佔用的記憶體方法總結Linux記憶體
- Linux 效能分析匯總Linux
- Linux 效能分析工具彙總Linux
- Linux 效能分析匯總(轉)Linux
- 開發Qt應用程式的基本方法總結QT
- nginx應用總結(2)--突破高併發的效能優化Nginx優化
- 應用程式邏輯錯誤總結
- Linux 下的I/O效能分析 iotopLinux
- Linux 效能分析工具彙總合集Linux
- 九種常用排序的效能分析總結 [zhuan]排序
- 陣列效能問題分析總結陣列
- 【實操】小程式的應用場景分析——線下場景應用
- 大型應用下的 AngularJS 效能AngularJS
- Linux下的程式分析–PSLinux
- 小程式效能優化總結優化
- 索引的應用規律總結索引
- RB的應用問題總結
- Linux作業系統程式管理的分析與應用Linux作業系統
- 實驗總結分析報告 ——從系統的角度分析影響程式執行效能的因素
- XStream應用總結
- 字串合集應用總結字串
- 效能分析(2)- 應用程式 CPU 使用率過高案例
- Linux下的守護程式分析Linux
- JavaScript 程式碼效能優化總結JavaScript優化
- Linux程式效能分析和火焰圖Linux
- 提高Linux系統效能加速網路應用程式(轉)Linux
- PerfDog效能狗上手體驗及總結分析
- linux下svn的常用操作命令總結Linux
- pub/sub的實際應用總結
- Oracle ebs應用相關服務和程式總結Oracle
- Linux下應用程式開發:QT的內部程式通訊(轉)LinuxQT
- 各種程式場景下磁碟讀寫效能分析 -- 結合iostatiOS
- 並查集應用總結並查集
- 應用程式結構
- Linux下的Mongodb部署應用梳理LinuxMongoDB
- 關於Redis資料型別以及應用場景的分析與總結Redis資料型別
- 軟體效能測試分析與調優實踐之路-Java應用程式的效能分析與調優-手稿節選Java