Re: [問題] 在linux下如何找出C程式中loop較多的區段

看板Linux作者 (呆牛)時間13年前 (2011/04/20 19:07), 編輯推噓5(501)
留言6則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《BoxsterX ()》之銘言: : 由於要做平行程式 : 要先找出重複較多的區段再下手處理 : 請問有甚麼方法能達到這個目標 平行程式的重點在於找出執行時間(CPU time)最久的地方最佳化 不一定是重複最多的次的區段 至於要找出這些地方的工具叫做 profiler 我自己比較常用的 Intel VTune (Linux 非商業版是免費的,可以到 http://goo.gl/cevLw 取得) 直接跑編譯過的程式就可以分析 hotspot 了 如果編譯的時候有加 -g 的話,可以直接看到哪一行跑最久,非常方便。 如果是 Intel 的 CPU 的話,更可以直接讀硬體的 event counter, 可以用來測量 L1, L2 cache miss 等等 操作方法很簡單,看著官方的 Getting start guide 就可以了 另外兩套也值得推薦的是 GNU profile (gprof) 以及 Google Profermance tool (pprof) 只是使用這兩套時都需要額外編譯程式 網路上也有相當多的資料~ 以上是我的小小心得 :P 剩下請版上各位補充~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.252.104 ※ 編輯: danielsig727 來自: 140.113.252.104 (04/20 19:12)

04/20 19:16, , 1F
感謝提供資訊~
04/20 19:16, 1F

04/20 20:06, , 2F
看起來很好用!
04/20 20:06, 2F

04/20 20:30, , 3F
大感謝!
04/20 20:30, 3F

04/20 20:46, , 4F
專業推!!
04/20 20:46, 4F

04/21 02:38, , 5F
但在VTune在windows下真是有夠難用。。
04/21 02:38, 5F

04/22 12:12, , 6F
太專業了!
04/22 12:12, 6F
文章代碼(AID): #1Dhhvqny (Linux)
文章代碼(AID): #1Dhhvqny (Linux)