valgrind是開(kāi)源的性能分析利器。 根據(jù)它的文檔,可以用它來(lái)檢查內(nèi)存泄漏等問(wèn)題,還可以用來(lái)生成函數(shù)的調(diào)用圖,就這兩個(gè)功能就足夠有吸引力了。
本文主要是介紹如何使用valgrind的callgrind工具進(jìn)行性能分析。
分析過(guò)程
使用callgrind工具生成性能分析數(shù)據(jù)
命令格式如下:
valgrind --tool=callgrind 。/exproxy
其中 ./exproxy就是我們要分析的程序。執(zhí)行完畢后,就會(huì)在當(dāng)前目錄下生成一個(gè)文件。文件名為“callgrind.out.進(jìn)程號(hào)”。如,callgrind.out.31113。注意,對(duì)于daemon進(jìn)程的調(diào)試,不要通過(guò)kill -9方式停止。
如果你調(diào)試的程序是多線(xiàn)程,你也可以在命令行中加一個(gè)參數(shù) -separate-threads=yes。這樣就會(huì)為每個(gè)線(xiàn)程單獨(dú)生成一個(gè)性能分析文件。如下:
valgrind --tool=callgrind --separate-threads=yes 。/exproxy
生成的文件除了callgrind.out.31113外,還會(huì)多出一些子線(xiàn)程的文件。文件名如下:
callgrind.out.31113-01 callgrind.out.31113-02 callgrind.out.31113-03
把callgrind生成的性能數(shù)據(jù)轉(zhuǎn)換成dot格式數(shù)據(jù)
可以使用gprof2dot.py腳本,把callgrind生成的性能分析數(shù)據(jù)轉(zhuǎn)換成dot格式的數(shù)據(jù)。方便使用dot把分析數(shù)據(jù)圖形化。
腳本可以 這里下載。腳本使用方式如下:
使用dot把數(shù)據(jù)生成圖片
命令格式如下:
-
多線(xiàn)程
+關(guān)注
關(guān)注
0文章
278瀏覽量
20071 -
Valgrind
+關(guān)注
關(guān)注
0文章
9瀏覽量
6827
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Java多線(xiàn)程的用法
如何合理的進(jìn)行線(xiàn)程切換與調(diào)度
QNX環(huán)境下多線(xiàn)程編程
LINUX系統(tǒng)下多線(xiàn)程與多進(jìn)程性能分析
數(shù)控測(cè)井軟件中的多線(xiàn)程編程技術(shù)
LabWindows_CVI多線(xiàn)程技術(shù)的應(yīng)用研究
![LabWindows_CVI<b class='flag-5'>多線(xiàn)程</b>技術(shù)的應(yīng)用研究](https://file.elecfans.com/web2/M00/49/64/pYYBAGKhtEuAHfnpAAAQTK9clqg217.jpg)
Windows多線(xiàn)程編程
關(guān)于多線(xiàn)程編程教程及經(jīng)典應(yīng)用案例的匯總分析
多線(xiàn)程好還是單線(xiàn)程好?單線(xiàn)程和多線(xiàn)程的區(qū)別 優(yōu)缺點(diǎn)分析
什么是多線(xiàn)程編程?多線(xiàn)程編程基礎(chǔ)知識(shí)
如何利用基于字節(jié)碼插樁實(shí)現(xiàn)的多線(xiàn)程調(diào)試工具
![如何利用基于字節(jié)碼插樁實(shí)現(xiàn)的<b class='flag-5'>多線(xiàn)程</b>調(diào)試<b class='flag-5'>工具</b>](https://file.elecfans.com/web1/M00/C0/80/pIYBAF8CwPyAL4mTAABM1uHyFcs387.png)
評(píng)論