在linux下如何找出C程式中loop較多的區段 - Linux

By David
at 2011-04-20T19:07
at 2011-04-20T19:07
Table of Contents
※ 引述《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 剩下請版上各位補充~
--
: 由於要做平行程式
: 要先找出重複較多的區段再下手處理
: 請問有甚麼方法能達到這個目標
平行程式的重點在於找出執行時間(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 剩下請版上各位補充~
--
Tags:
Linux
All Comments

By Olive
at 2011-04-25T17:45
at 2011-04-25T17:45

By Eden
at 2011-04-29T16:11
at 2011-04-29T16:11

By Daph Bay
at 2011-05-03T00:05
at 2011-05-03T00:05

By Jake
at 2011-05-06T18:35
at 2011-05-06T18:35

By Todd Johnson
at 2011-05-11T04:48
at 2011-05-11T04:48

By Tom
at 2011-05-14T01:09
at 2011-05-14T01:09
Related Posts
pcmanx-gtk2 1.0 released

By Damian
at 2011-04-20T11:21
at 2011-04-20T11:21
samba 無法存取家目錄以外的目錄

By Margaret
at 2011-04-20T10:16
at 2011-04-20T10:16
長檔名用tar打包之後...路徑卻不見了

By Doris
at 2011-04-20T10:15
at 2011-04-20T10:15
長檔名用tar打包之後...路徑卻不見了

By Olive
at 2011-04-20T02:50
at 2011-04-20T02:50
pure-ftp的權限設定

By Margaret
at 2011-04-20T01:16
at 2011-04-20T01:16