Linux性能分析工具.md

Perf

Perf是內置於Linux內核源碼樹中的性能剖析(profiling)工具。其基於事件採樣原理,以性能事件爲基礎,常用於性能瓶頸的查找與熱點代碼的定位

Gprof

gprof用於監控程序中每個方法的執行時間和被調用次數,方便找出程序中最耗時的函數。在程序正常退出後,會生成gmon.out文件,解析這個文件,可以生成一個可視化的報告.

Valgrind

valgrind不是linux的原生工具,需要自行安裝。valgrind自身包含了多個工具:

  • Memcheck:用於內存泄漏檢查
    檢查程序中的內存問題,包括使用未初始化的內存;使用已經釋放的內存;使用內存越界;對堆棧的非法訪問;內存泄露;malloc/free/new/delete申請和釋放內存的匹配等內存問題
  • callgrind: 用於性能分析,會收集程序運行時間和調用關係
    Callgrind收集程序運行時的一些數據,函數調用關係等信息,還可以有選擇地進行cache 模擬。
  • cachegrind:
    它模擬CPU中的一級緩存I1,D1和L2二級緩存,能夠精確地指出程序中 cache的丟失和命中。如果需要,它還能夠爲我們提供cache丟失次數,內存引用次數,以及每行代碼,每個函數,每個模塊,整個程序產生的指令數。
  • helgrind:
    它主要用來檢查多線程程序中出現的競爭問題。Helgrind 尋找內存中被多個線程訪問,而又沒有一貫加鎖的區域,這些區域往往是線程之間失去同步的地方,而且會導致難以發掘的錯誤。
  • massif:
    堆棧分析器,它能測量程序在堆棧中使用了多少內存,告訴我們堆塊,堆管理塊和棧的大小。Massif能幫助我們減少內存的使用,在帶有虛擬內存的現代系統中,它還能夠加速我們程序的運行,減少程序停留在交換區中的機率。、
參考文獻
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章