锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美在线观看一区二区,亚洲欧美资源在线,亚洲主播在线http://m.shnenglu.com/jackdongy/category/20108.htmlHCP楂樻ц兘璁$畻鏋舵瀯錛屽疄鐜幫紝緙栬瘧鍣ㄦ寚浠や紭鍖栵紝綆楁硶浼樺寲錛? LLVM CLANG OpenCL CUDA OpenACC C++AMP OpenMP MPIzh-cnSun, 28 Oct 2012 13:41:37 GMTSun, 28 Oct 2012 13:41:37 GMT60GProfile鐨勬葷粨http://m.shnenglu.com/jackdongy/archive/2012/10/26/193906.htmljackdongjackdongFri, 26 Oct 2012 07:41:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/26/193906.htmlhttp://m.shnenglu.com/jackdongy/comments/193906.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/26/193906.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/193906.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/193906.htmlhttp://blog.csdn.net/dongjun7357/article/details/6277682

涓銆丟Profile綆浠?/p>

      GProfile鏄痝cc鐨勪竴涓伐鍏鳳紝鐢ㄤ簬瀵瑰簲鐢ㄧ▼搴忕殑嫻嬭瘯銆?/p>

      GProfile鍙互鍒嗘瀽鍑哄嚱鏁扮殑璋冪敤嬈℃暟銆佸嚱鏁扮殑璋冪敤鍏崇郴浠ュ強鍑芥暟娑堣楃殑鏃墮棿銆?/p>

 

浜屻丟Profile鍘熺悊

      鍦ㄧ紪璇戝拰閾炬帴浣犵殑紼嬪簭鐨勬椂鍊欙紝gcc 鍦ㄤ綘搴旂敤紼嬪簭鐨勬瘡涓嚱鏁頒腑閮藉姞鍏ヤ簡涓涓悕涓簃count ( or "_mcount" , or "__mcount" , 渚濊禆浜庣紪璇戝櫒鎴栨搷浣滅郴緇?鐨勫嚱鏁幫紝涔熷氨鏄浣犵殑搴旂敤紼嬪簭閲岀殑姣忎竴涓嚱鏁伴兘浼?xì)璋冪敤mcount, 鑰宮count 浼?xì)鍦ㄥ唴瀛樹腑淇濆瓨涓寮犲嚱鏁拌皟鐢ㄥ浘錛屽茍閫氳繃鍑芥暟璋冪敤鍫嗘爤鐨勫艦寮忔煡鎵懼瓙鍑芥暟鍜岀埗鍑芥暟鐨勫湴鍧銆傝繖寮犺皟鐢ㄥ浘涔熶繚瀛樹簡鎵鏈変笌鍑芥暟鐩稿叧鐨勮皟鐢ㄦ椂闂達紝璋冪敤嬈℃暟絳夌瓑鐨勬墍鏈変俊鎭?nbsp;

     紼嬪簭榪愯緇撴潫鍚庯紝浼?xì)鍦ńE嬪簭閫鍑虹殑璺緞涓嬬敓鎴愪竴涓?/span>gmon.out鏂囦歡錛岀敤鏉ヤ繚瀛樼洃鎺ф暟鎹備粠鑰?/span>閫氳繃gprof鏉ヨВ璇繪暟鎹紼嬪簭榪涜鍒嗘瀽銆?/span>

          

涓夈丟Profile鐢ㄦ硶

      1銆佸湪緙栬瘧鏃跺姞鍏ュ弬鏁?-pg灝卞彲浠ユ墦寮GProfile鐨勫紑鍏熾?/span>

      2銆?span style="color: rgb(75,78,81)">gprof鍙煡鐪嬬敤鎴峰嚱鏁頒俊鎭紝涓嶈兘瀵瑰簱鍑芥暟榪涜鏌ョ湅銆?/span> 濡傛灉鎯蟲煡鐪嬪簱鍑芥暟鐨勪俊鎭紝鍦ㄧ紪璇戞椂鍔犲叆"-lc_p"緙栬瘧鍙傛暟浠f浛"-lc"緙栬瘧鍙傛暟錛岃繖鏍風(fēng)▼搴忎細(xì)閾炬帴libc_p.a搴擄紝灝卞彲浠ユ煡鐪嬪簱鍑芥暟鐨勪俊鎭簡銆?nbsp;
銆銆3銆?gprof鍙兘鍦ㄧ▼搴忔甯哥粨鏉熼鍑轟箣鍚庢墠鑳界敓鎴愮▼搴忔祴璇勬姤鍛婏紝鍘熷洜鏄痝prof閫氳繃鍦╝texit()閲屾敞鍐屼簡涓涓嚱鏁版潵浜х敓緇撴灉淇℃伅錛屼換浣曢潪姝e父閫鍑洪兘涓嶄細(xì)鎵цatexit()鐨勫姩浣滐紝鎵浠ヤ笉浼?xì)漶旂敓gmon.out鏂囦歡銆傚鏋滀綘鐨勭▼搴忔槸涓涓笉浼?xì)閫鍑虹殑鏈嶅姟紼嬪簭錛岄偅灝卞彧鏈変慨鏀逛唬鐮佹潵杈懼埌鐩殑銆傚鏋滀笉鎯蟲敼鍙樼▼搴忕殑榪愯鏂瑰紡錛屽彲浠ユ坊鍔犱竴涓俊鍙峰鐞嗗嚱鏁拌В鍐抽棶棰橈紙榪欐牱瀵逛唬鐮佷慨鏀規(guī)渶灝戯級錛屼緥濡傦細(xì) 
銆銆static void sighandler( int sig_no ) 
銆銆{ 
銆銆exit(0); 
銆銆} 
銆銆signal( SIGUSR1, sighandler )錛?nbsp;
銆銆褰撲嬌鐢╧ill -USR1 pid 鍚庯紝紼嬪簭閫鍑猴紝鐢熸垚gmon.out鏂囦歡銆?nbsp;

 

鍥涖丟Profile涓句緥


#include 
<stdio.h> 

  
int ppp(int a) 

  


     
int i, b; 

     b 
= 0

     
for(i = 0; i<1000000; i++

        b
++

     }
 

     
return 0

  }
 

 


  
int prime(int n) 

  


     
int i, j, b; 

     b 
= 0

     
for(i=2; i<n; i++

         
for(j = 0; j<1000000; j++

              b
++

         }
 

         
if(n%== 0

           
return 0

         
return 1

        }
 

   }
 

  


   
int main(void

   


      
int i, n; 

      n 
= 1000

      
for(i=2; i<=n; i++

         
if(prime(i)) 

            ppp(i); 

         }
 

      }
 

      
return 0

   }
 

緙栬瘧紼嬪簭錛歡cc -pg -o test test.c
  榪愯婧愮▼搴?/span>./test鍚庝細(xì)鐢熸垚涓涓?/span>gmon.out鐨勬枃浠?/span>銆?
   鍒嗘瀽緇撴灉錛歡prof -b test gmon.out
 

  

 

 浜斻丟Profile瀵逛簬緇撴灉鐨勫垎鏋?/p>

      -b 涓嶅啀杈撳嚭緇熻鍥捐〃涓瘡涓瓧孌電殑璇︾粏鎻忚堪銆?nbsp;
銆銆-p 鍙緭鍑哄嚱鏁扮殑璋冪敤鍥撅紙Call graph鐨勯偅閮ㄥ垎淇℃伅錛夈?nbsp;
銆銆-q 鍙緭鍑哄嚱鏁扮殑鏃墮棿娑堣楀垪琛ㄣ?nbsp;
銆銆-e Name 涓嶅啀杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥撅紙闄ら潪瀹冧滑鏈夋湭琚檺鍒剁殑鍏跺畠鐖跺嚱鏁幫級銆傚彲浠ョ粰瀹氬涓?-e 鏍囧織銆備竴涓?-e 鏍囧織鍙兘鎸囧畾涓涓嚱鏁般?nbsp;
銆銆-E Name 涓嶅啀杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥撅紝姝ゆ爣蹇楃被浼間簬 -e 鏍囧織錛屼絾瀹冨湪鎬繪椂闂村拰鐧懼垎姣旀椂闂寸殑璁$畻涓帓闄や簡鐢卞嚱鏁癗ame 鍙婂叾瀛愬嚱鏁版墍鐢ㄧ殑鏃墮棿銆?nbsp;
銆銆-f Name 杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥俱傚彲浠ユ寚瀹氬涓?-f 鏍囧織銆備竴涓?-f 鏍囧織鍙兘鎸囧畾涓涓嚱鏁般?nbsp;
銆銆-F Name 杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥撅紝瀹冪被浼間簬 -f 鏍囧織錛屼絾瀹冨湪鎬繪椂闂村拰鐧懼垎姣旀椂闂磋綆椾腑浠呬嬌鐢ㄦ墍鎵撳嵃鐨勪緥紼嬬殑鏃墮棿銆傚彲浠ユ寚瀹氬涓?-F 鏍囧織銆備竴涓?-F 鏍囧織鍙兘鎸囧畾涓涓嚱鏁般?F 鏍囧織瑕嗙洊 -E 鏍囧織銆?nbsp;
銆銆-z 鏄劇ず浣跨敤嬈℃暟涓洪浂鐨勪緥紼嬶紙鎸夌収璋冪敤璁℃暟鍜岀瘡縐椂闂磋綆楋級銆?nbsp;

      GProfile鐨勮緇嗚鍙傝冿細(xì)http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html

      榪欎釜鏂囨。瀵笹Profile璇寸殑寰堣緇嗭紝寰堝ソ銆?/p>


jackdong 2012-10-26 15:41 鍙戣〃璇勮
]]>
浣跨敤Gnu gprof榪涜Linux騫沖彴涓嬬殑紼嬪簭鍒嗘瀽 http://m.shnenglu.com/jackdongy/archive/2012/10/21/193598.htmljackdongjackdongSun, 21 Oct 2012 04:36:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/21/193598.htmlhttp://m.shnenglu.com/jackdongy/comments/193598.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/21/193598.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/193598.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/193598.htmlhttp://blog.csdn.net/bendanban/article/details/7742593

鍦ㄧ綉涓婃壘浜嗘壘鍏充簬Progfile鐨勫伐鍏鳳紝鎵懼埌浜嗚繖綃囨枃绔犺寰椾笉閿欙紝杞潵鍒嗕韓涓嬨傚鍘熸枃淇敼浜嗕笅銆?br />

鏈枃浠嬬粛浜嗗浣曚嬌鐢℅nu gprof 瀵筁inux騫沖彴涓嬬殑鐜版湁紼嬪簭榪涜浼樺寲鍒嗘瀽鍜岀敓鎴愮▼搴忚皟鐢ㄥ浘銆備富瑕佸亸閲嶄簬瀵圭敓鎴愬拰浣跨敤嫻佺▼鍥句綔浠嬬粛.

Gprof 綆浠?
Gprof鍔熻兘錛氭墦鍗板嚭紼嬪簭榪愯涓悇涓嚱鏁版秷鑰楃殑鏃墮棿錛屽彲浠ュ府鍔╃▼搴忓憳鎵懼嚭浼楀鍑芥暟涓楁椂鏈澶氱殑鍑芥暟銆備駭鐢熺▼搴忚繍琛屾椂鍊欑殑鍑芥暟璋冪敤鍏崇郴錛屽寘鎷皟鐢ㄦ鏁幫紝鍙互甯姪紼嬪簭鍛樺垎鏋愮▼搴忕殑榪愯嫻佺▼銆?br />鏈変簡鍑芥暟鐨勮皟鐢ㄥ叧緋伙紝榪欎細(xì)璁╁紑鍙戜漢鍛樺ぇ澶ф彁楂樺伐浣滄晥鐜囷紝涓嶇敤璐瑰績鍦板幓涓鐐圭偣鎵懼嚭紼嬪簭鐨勮繍琛屾祦紼嬶紝榪欏灝忕▼搴忔潵璇村彲鑳芥晥鏋滀笉鏄緢鏄庢樉錛屼絾瀵逛簬鏈夊嚑涓囷紝鍑犲崄涓囦唬鐮侀噺鐨勫伐紼嬫潵璇達紝鏁堢巼鏄瘚搴哥疆鐤戠殑錛佽屼笖榪欎釜鍔熻兘瀵逛簬緇存姢鏃т唬鐮佹垨鑰呮槸鍒嗘瀽Open Source鏉ヨ閭f槸鐩稿綋璇變漢鐨勶紝鏈変簡璋冪敤鍥撅紝瀵圭▼搴忕殑榪愯妗嗘灦涔熷氨鏈変簡涓涓ぇ浣撲簡瑙o紝鐭ラ亾浜嗙▼搴忕殑“楠ㄦ灦“錛屽垎鏋愬畠涔熷氨涓嶄細(xì)鍐嶉偅涔堣尗鐒訛紝灝ゅ叾鏄鑷繁涓嶇啛鎮(zhèn)夌殑浠g爜鍜孫pen Source銆傝垂璇濅笉澶氳浜嗭紝璁╂垜浠紑濮嬫垜浠殑鍒嗘瀽涔嬫梾鍚э紒

Gprof 瀹炵幇鍘熺悊錛?/strong>
閫氳繃鍦ㄧ紪璇戝拰閾炬帴浣犵殑紼嬪簭鐨勬椂鍊欙紙浣跨敤 -pg 緙栬瘧鍜岄摼鎺ラ夐」錛夛紝gcc 鍦ㄤ綘搴旂敤紼嬪簭鐨勬瘡涓嚱鏁頒腑閮藉姞鍏ヤ簡涓涓悕涓簃count ( or  “_mcount”  , or  “__mcount” , 渚濊禆浜庣紪璇戝櫒鎴栨搷浣滅郴緇?鐨勫嚱鏁幫紝涔熷氨鏄浣犵殑搴旂敤紼嬪簭閲岀殑姣忎竴涓嚱鏁伴兘浼?xì)璋冪敤mcount, 鑰宮count 浼?xì)鍦ㄥ唴瀛樹腑淇濆瓨涓寮犲嚱鏁拌皟鐢ㄥ浘錛屽茍閫氳繃鍑芥暟璋冪敤鍫嗘爤鐨勫艦寮忔煡鎵懼瓙鍑芥暟鍜岀埗鍑芥暟鐨勫湴鍧銆傝繖寮犺皟鐢ㄥ浘涔熶繚瀛樹簡鎵鏈変笌鍑芥暟鐩稿叧鐨勮皟鐢ㄦ椂闂達紝璋冪敤嬈℃暟絳夌瓑鐨勬墍鏈変俊鎭?/p>

Gprof鍩烘湰鐢ㄦ硶錛?/em>
1錛?浣跨敤 -pg 緙栬瘧鍜岄摼鎺ヤ綘鐨勫簲鐢ㄧ▼搴忋?/p>

2錛?鎵ц浣犵殑搴旂敤紼嬪簭浣夸箣鐢熸垚渚沢prof 鍒嗘瀽鐨勬暟鎹?/p>

3錛?浣跨敤gprof 紼嬪簭鍒嗘瀽浣犵殑搴旂敤紼嬪簭鐢熸垚鐨勬暟鎹?/p>

Gprof 綆鍗曚嬌鐢細(xì)
璁╂垜浠畝鍗曠殑涓句釜渚嬪瓙鏉ョ湅鐪婫prof鏄浣曚嬌鐢ㄧ殑銆?/p>1錛庢墦寮linux緇堢銆傛柊寤轟竴涓猼est.c鏂囦歡錛屽茍鐢熺敤-pg 緙栬瘧鍜岄摼鎺ヨ鏂囦歡銆?test.c 鏂囦歡鍐呭濡備笅錛?

#include "stdio.h"
#include 
"stdlib.h"
void a()
{
  printf(
"\t\t+---call a() function\n");
}

void c()
{
  printf(
"\t\t+---call c() function\n");
}

int b()
{
  printf(
"\t+--- call b() function\n");
  a();
  c();
  
return 0;
}


int main()
{
  printf(
" main() function()\n");
  b();
}

鍛戒護琛岄噷闈㈣緭鍏ヤ笅闈㈠懡浠わ紝娌″姞-c閫夐」錛実cc 浼?xì)榛樿杩涜缂栬瘧迤堥摼鎺ョ敓鎴恆.out錛?
$gcc -pg test.c

濡傛灉娌℃湁緙栬瘧閿欒錛実cc浼?xì)鍦ㄥ綋鍓嶇洰褰曚笅鐢熸垚涓涓猘.out鏂囦歡錛屽綋鐒朵綘涔熷彲浠ヤ嬌鐢?–o 閫夐」緇欑敓鎴愮殑鏂囦歡璧蜂竴涓埆鐨勫悕瀛楋紝鍍?gcc –pg test.c –o test , 鍒檊cc浼?xì)鐢熸垚涓涓悕涓簍est鐨勫彲鎵ц鏂囦歡,鍦ㄥ懡浠よ涓嬭緭鍏linux /home/test]$./test , 灝卞彲浠ユ墽琛岃紼嬪簭浜嗭紝璁頒綇涓瀹氳鍔犱笂 ./ 鍚﹀垯紼嬪簭鐪嬩笂鍘誨彲鑳芥槸鎵ц錛屽彲鏄粈涔堣緭鍑洪兘娌℃湁銆?

 

2錛庢墽琛屼綘鐨勫簲鐢ㄧ▼搴忎嬌涔嬬敓鎴愪緵gprof 鍒嗘瀽鐨勬暟鎹?nbsp; 鍛戒護琛岄噷闈㈣緭鍏?

[linux /home/test]$a.out
main() function()
+--- call b() function
+---call a() function
+---call c() function

浣犱細(xì)鍦ㄥ綋鍓嶇洰褰曚笅鐪嬪埌涓涓猤mon.out 鏂囦歡錛?榪欎釜鏂囦歡灝辨槸渚沢prof 鍒嗘瀽浣跨敤鐨勩?

 

3錛庝嬌鐢╣prof 紼嬪簭鍒嗘瀽浣犵殑搴旂敤紼嬪簭鐢熸垚鐨勬暟鎹?br />鍛戒護琛岄噷闈㈣緭鍏?

 

$ gprof -b a.out gmon.out | less

鐢變簬gprof杈撳嚭鐨勪俊鎭瘮杈冨錛岃繖閲屼嬌鐢ㄤ簡 less 鍛戒護錛岃鍛戒護鍙互璁╂垜浠氳繃涓婁笅鏂瑰悜閿煡鐪媑prof浜х敓鐨勮緭鍑猴紝| 琛ㄧずgprof -b a.out gmon.out 鐨勮緭鍑轟綔涓?less鐨勮緭鍏ャ備笅闈㈡槸鎴戜粠gprof杈撳嚭涓憳鎶勫嚭鐨勪笌鎴戜滑鏈夊叧鐨勪竴浜涜緇嗕俊鎭?/p>

%     cumulative    self              self     total
time   seconds     seconds    calls  Ts
/call  Ts/call  name
0.00      0.00     0.00        1     0.00     0.00  a
0.00      0.00     0.00        1     0.00     0.00  b
0.00      0.00     0.00        1     0.00     0.00  c

Call graph

granularity: each sample hit covers 
4 byte(s) no time propagated

index 
% time    self  children    called     name
0.00    0.00       1/1           b [2]
[
1]      0.0    0.00    0.00       1         a [1]
-----------------------------------------------
0.00    0.00       1/1           main [10]
[
2]      0.0    0.00    0.00       1         b [2]
0.00    0.00       1/1           a [1]
0.00    0.00       1/1           c [3]
-----------------------------------------------
0.00    0.00       1/1           b [2]
[
3]      0.0    0.00    0.00       1         c [3]

浠庝笂闈㈢殑杈撳嚭鎴戜滑鑳芥槑鏄劇殑鐪嬪嚭鏉ワ紝main 璋冪敤浜?b 鍑芥暟錛?鑰宐 鍑芥暟鍒嗗埆璋冪敤浜哸 鍜?c 鍑芥暟銆傜敱浜庢垜浠殑鍑芥暟鍙槸綆鍗曠殑杈撳嚭浜嗕竴涓瓧涓詫紝鏁呮瘡涓嚱鏁扮殑娑堣楁椂闂撮兘鏄? 縐掋?

 


甯哥敤鐨凣prof 鍛戒護閫夐」瑙i噴錛?/strong>

-b涓嶅啀杈撳嚭緇熻鍥捐〃涓瘡涓瓧孌電殑璇︾粏鎻忚堪銆?

-p 鍙緭鍑哄嚱鏁扮殑璋冪敤鍥撅紙Call graph 鐨勯偅閮ㄥ垎淇℃伅錛夈?/p>

-q 鍙緭鍑哄嚱鏁扮殑鏃墮棿娑堣楀垪琛ㄣ?/p>

-E Name涓嶅啀杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥撅紝姝ゆ爣蹇楃被浼間簬 -e 鏍囧織錛屼絾瀹冨湪鎬繪椂闂村拰鐧懼垎姣旀椂闂寸殑璁$畻涓帓闄や簡鐢卞嚱鏁癗ame 鍙婂叾瀛愬嚱鏁版墍鐢ㄧ殑鏃墮棿銆?/p>

-e Name 涓嶅啀杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥撅紙闄ら潪瀹冧滑鏈夋湭琚檺鍒剁殑鍏跺畠鐖跺嚱鏁幫級銆傚彲浠ョ粰瀹氬涓?-e 鏍囧織銆備竴涓?-e 鏍囧織鍙兘鎸囧畾涓涓嚱鏁般?

-F Name 杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥撅紝瀹冪被浼間簬 -f 鏍囧織錛屼絾瀹冨湪鎬繪椂闂村拰鐧懼垎姣旀椂闂磋綆椾腑浠呬嬌鐢ㄦ墍鎵撳嵃鐨勪緥紼嬬殑鏃墮棿銆傚彲浠ユ寚瀹氬涓?-F 鏍囧織銆備竴涓?-F 鏍囧織鍙兘鎸囧畾涓涓嚱鏁般?F 鏍囧織瑕嗙洊 -E 鏍囧織銆?

-f Name杈撳嚭鍑芥暟Name 鍙婂叾瀛愬嚱鏁扮殑璋冪敤鍥俱傚彲浠ユ寚瀹氬涓?-f 鏍囧織銆備竴涓?-f 鏍囧織鍙兘鎸囧畾涓涓嚱鏁般?

-z 鏄劇ず浣跨敤嬈℃暟涓洪浂鐨勪緥紼嬶紙鎸夌収璋冪敤璁℃暟鍜岀瘡縐椂闂磋綆楋級銆?/p>

鍒拌繖涓烘浣犲彲鑳藉gprof 鏈変簡涓涓瘮杈冩劅鎬х殑璁よ瘑浜嗭紝浣犲彲鑳戒細(xì)闂浣曠敤瀹冨幓鍒嗘瀽涓涓湡姝g殑Open Source 鍛紒涓嬮潰灝辮鎴戜滑鍘葷敤gprof鍘誨垎鏋愪竴涓狾pen Source錛岀湅鐪嬪浣曞幓鍦ㄧ湡瀹炵殑鐜涓嬌鐢ㄥ畠銆?/p>

浣跨敤Gprof 鍒嗘瀽 Cflow寮婧愰」鐩?/strong>
CFlow 鏄▼搴忔祦紼嬪垎鏋愬伐鍏鳳紝璇ュ伐鍏峰彲浠ラ氳繃鍒嗘瀽C婧愪唬鐮侊紝浜х敓紼嬪簭璋冪敤鍥撅紒鏈夌偣璺烥prof宸笉澶氾紝涓嶈繃CFlow鏄氳繃婧愪唬鐮佽繘琛岀殑闈欐佸垎鏋愬茍涓?涓嶈兘鍒嗘瀽C++ 紼嬪簭,浣犲彲浠ュ埌http://www.gnu.org/software/cflow/鍘諱笅杞芥簮浠g爜銆?/p>

鍋囪浣犲凡緇忎笅杞戒簡璇ユ簮浠g爜錛坈flow-1.1.tar.gz錛?騫舵妸瀹冩斁緗湪/home鐩綍涓嬶紝璁╂垜浠湅鐪嬪浣曞湪榪欎釜搴旂敤涓婁嬌鐢╣prof銆?

1錛?nbsp;浣跨敤 -pg 緙栬瘧鍜岄摼鎺ヨ搴旂敤紼嬪簭,璇瘋緭鍏ヤ笅鍒楀懡浠ゃ?/p>

 

[linux /home/]tar zxvf cflow-1.1.tar.gz
[linux /home/cflow-1.1/src]$./configure
[linux /home]$make CFLAGS=-pg LDFLAGS=-pg 

濡傛灉娌℃湁鍑洪敊浣犱細(xì)鍦?home/cflow-1.1/src 鐩綍涓嬪彂琛屼竴涓悕涓篶flow鐨勫彲鎵ц鏂囦歡錛岃繖灝辨槸鎴戜滑鍔犲叆-pg緙栬瘧閫夐」鍚庣紪璇戝嚭鏉ョ殑鍙互浜х敓渚沢prof鎻愬彇淇℃伅鐨勫彲鎵ц鏂囦歡銆?strong>璁頒綇涓瀹氳鍦ㄧ紪璇戝拰閾炬帴鐨勬椂鍊欓兘浣跨敤-pg閫夐」錛屽惁鍒欏彲鑳戒笉浼?xì)漶旂敓gmon.out鏂囦歡銆傚浜巆flow欏圭洰錛孋FLAGS=-pg 鏄緗畠鐨勭紪璇戦夐」錛孡DFLAGS=-pg鏄緗畠鐨勯摼鎺ラ夐」銆傚綋鐒朵綘涔熷彲浠ョ洿鎺ヤ慨鏀瑰畠鐨凪akefile鏉ヨ揪鍒頒笂榪扮浉鍚岀殑鐩殑錛屼笉榪囦竴瀹氳璁頒綇緙栬瘧鍜岄摼鎺ラ兘瑕佷嬌鐢?pg閫夐」銆?

 

2錛?nbsp;榪愯cflow 紼嬪簭浣夸箣鐢熸垚gmon.out 鏂囦歡渚沢prof浣跨敤銆?

 

[linux /home/cflow-1.1/src]$cflow parser.c

鏌ョ湅/home/cflow-1.1/src鐩綍涓嬫湁娌℃湁浜х敓gmon.out鏂囦歡錛屽鏋滄病鏈夎閲嶅絎竴姝ワ紝騫剁‘璁や綘宸茬粡鍦ㄧ紪璇戝拰閾炬帴紼嬪簭鐨勬椂鍊欎嬌鐢ㄤ簡-pg 閫夐」銆侰flow鐨勪嬌鐢ㄨ鍙傝?a >http://www.gnu.org/software/cflow/manual/cflow.html銆?

 

3錛?nbsp;浣跨敤gprof鍒嗘瀽紼嬪簭
[linux /home/cflow-1.1/src]$gprof -b cflow gmon.out | less
鎭枩浣狅紝涓嶅嚭鎰忓浣犱細(xì)鍦ㄥ睆騫曚笂鐪嬪埌gprof鐨勮緭鍑猴紝鍑芥暟娑堣楁椂闂村拰鍑芥暟璋冪敤鍥撅紝涓嬮潰鏄垜浠庢垜鐨勮緭鍑轟腑鎽樻妱鍑烘潵鐨勪竴灝忔銆?/p>

 

%   cumulative   self              self     total time   seconds   seconds    calls  Ts/call  Ts/call  name 0.00      0.00     0.00   118262     0.00     0.00  include_symbol 0.00      0.00     0.00    92896     0.00     0.00  is_printable 0.00      0.00     0.00    28704     0.00     0.00  set_level_mark 0.00      0.00     0.00    28703     0.00     0.00  is_last 0.00      0.00     0.00    19615     0.00     0.00  auto_processor 0.00      0.00     0.00    15494     0.00     0.00  gnu_output_handler 0.00      0.00     0.00    12286     0.00     0.00  delete_parm_processor 0.00      0.00     0.00     7728     0.00     0.00  newline 0.00      0.00     0.00     7728     0.00     0.00  print_function_name 0.00      0.00     0.00     7728     0.00     0.00  print_level

銆傘傘傘傘傘? 銆傘傘傘傘傘?/p>

Call graph

granularity: each sample hit covers 4 byte(s) no time propagated

index % time    self  children   called     name [1]      0.0    0.00    0.00     79+855  [1] 0.00    0.00    166     dcl [52] 0.00    0.00    163     parse_dcl [53] 0.00    0.00    150     dirdcl [56] 0.00    0.00    129     parse_declaration [63] 0.00    0.00     98     parse_variable_declaration [66] 0.00    0.00     63     maybe_parm_list [69] 0.00    0.00     63    parse_function_declaration [70] 0.00    0.00     39    func_body [74]

銆傘傘傘傘傘? 銆傘傘傘傘傘?/p>

 


閫氳繃鍒嗘瀽錛卼ime浣犲氨鐭ラ亾浜嗛偅涓嚱鏁版秷鑰楃殑鏃墮棿鏈澶氾紝浣犲彲浠ユ牴鎹繖涓緭鍑轟俊鎭仛鏈夌洰鐨勭殑浼樺寲錛屼笉榪嘽flow鎵ц鐨勯熷害鏄湪鏄お蹇簡錛屼互鑷籌紖time閮芥槸0 (娑堣楁椂闂存槸浠ョ涓哄崟浣嶈繘琛岀粺璁$殑)銆?

 

鐢熸垚鍥懼艦鍖栫殑鍑芥暟璋冪敤鍥?/strong>

1錛嶨raphviz 宸ュ叿
鐪嬪埌榪欓噷浣犱篃鍙兘瑙夊緱涓婇潰鐨勫嚱鏁拌皟鐢ㄥ浘瀹炲湪鏄笉鏂逛究瀵熺湅錛屼篃鐪嬩笉鍑烘潵涓涓▼搴忚皟鐢ㄧ殑鏁翠綋妗嗘灦銆傛病鏈夊叧緋伙紝鎴戝啀浠嬬粛涓涓湁鐢ㄧ殑宸ュ叿緇欎綘錛屼嬌鐢?Graphviz錛孏raphviz or Graph Visualization 鏄敱 AT&T 寮鍙戠殑涓涓紑婧愮殑鍥懼艦鍙鍖栧伐鍏楓傚畠鎻愪緵浜嗗縐嶇敾鍥捐兘鍔涳紝浣嗘槸鎴戜滑閲嶇偣鍏蟲敞鐨勬槸瀹冧嬌鐢?Dot 璇█鐩磋繛鍥劇殑鑳藉姏銆傚湪榪欓噷錛屽皢綆鍗曚粙緇嶅浣曚嬌鐢?Dot 鏉ュ垱寤轟竴涓浘褰紝騫跺睍紺哄浣曞皢鍒嗘瀽鏁版嵁杞崲鎴?Graphviz 鍙互浣跨敤鐨勮鑼? Dot 浣跨敤鐨勫浘褰㈣鑼冦?

浣跨敤 Dot 璇█錛屼綘鍙互鎸囧畾涓夌瀵硅薄錛氬浘銆佽妭鐐瑰拰杈廣備負(fù)浜嗚浣犵悊瑙h繖浜涘璞$殑鍚箟錛屾垜灝嗘瀯寤轟竴涓緥瀛愭潵灞曠ず榪欎簺鍏冪礌鐨勭敤娉曘?/p>


涓嬪浘緇欏嚭浜嗕竴涓畝鍗曠殑瀹氬悜鍥撅紙directed graph錛夛紝鍏朵腑鍖呭惈 3 涓妭鐐廣傜涓琛屽0鏄庤繖涓浘涓?G錛屽茍涓斿0鏄庝簡璇ュ浘鐨勭被鍨嬶紙digraph錛夈傛帴涓嬫潵鐨勪笁琛屼唬鐮佺敤浜庡垱寤鴻鍥劇殑鑺傜偣錛岃繖浜涜妭鐐瑰垎鍒悕涓?node1銆乶ode2 鍜?node3銆傝妭鐐規(guī)槸鍦ㄥ畠浠殑鍚嶅瓧鍑虹幇鍦ㄥ浘瑙勮寖涓椂鍒涘緩鐨勩傝竟鏄湪鍦ㄤ袱涓妭鐐逛嬌鐢ㄨ竟鎿嶄綔錛?>錛夎繛鎺ュ湪涓璧鋒椂鍒涘緩鐨勶紝濡傜 6 琛屽埌絎?8 琛屾墍紺恒傛垜榪樺杈逛嬌鐢ㄤ簡涓涓彲閫夌殑灞炴?label錛岀敤瀹冩潵琛ㄧず杈瑰湪鍥句腑鐨勫悕縐般傛渶鍚庯紝鍦ㄧ 9 琛屽畬鎴愬璇ュ浘瑙勮寖鐨勫畾涔夈?br />浣跨敤 Dot 絎﹀彿琛ㄧず鐨勭ず渚嬪浘錛坱est.dot錛?/p>

 

digraph G {
    node1;
    node2;
    node3;

    node1 
-> node2 [label="edge_1_2"];
    node1 
-> node3 [label="edge_1_3"];
    node2 
-> node3 [label="edge_2_3"];
 }

瑕佸皢榪欎釜 .dot 鏂囦歡杞崲鎴愪竴涓浘褰㈡槧鍍忥紝鍒欓渶瑕佷嬌鐢?Dot 宸ュ叿錛岃繖涓伐鍏鋒槸鍦?Graphviz 鍖呬腑鎻愪緵鐨勩傛竻鍗?6 浠嬬粛浜嗚繖縐嶈漿鎹€?br />娓呭崟 6. 浣跨敤 Dot 鏉ュ垱寤?JPG 鏄犲儚
[linux /home]$ dot -Tjpg test.dot -o test.jpg
鍦ㄨ繖孌典唬鐮佷腑錛屾垜鍛婅瘔 Dot 浣跨敤 test.dot 鍥懼艦瑙勮寖錛屽茍鐢熸垚涓涓?JPG 鍥懼儚錛屽皢鍏朵繚瀛樺湪鏂囦歡 test.jpg 涓傛墍鐢熸垚鐨勫浘鍍忓鍥?鎵紺恒傚湪姝ゅ錛屾垜浣跨敤浜?JPG 鏍煎紡錛屼絾鏄?Dot 宸ュ叿涔熷彲浠ユ敮鎸佸叾浠栨牸寮忥紝鍏朵腑鍖呮嫭 GIF銆丳NG 鍜?postscript絳夌瓑銆?

 


Dot鍒涘緩鐨勫疄渚嬪浘

Dot 璇█榪樺彲浠ユ敮鎸佸叾浠栦竴浜涢夐」錛屽寘鎷褰€侀鑹插拰寰堝灞炴с傛湁鍏磋叮鍙互鏌ョ湅graphviz鐩稿叧鏂囨。銆?br />2錛庝粠gprof鐨勮緭鍑轟腑鎻愬彇璋冪敤鍥句俊鎭紝浜х敓鍙緵Graphviz浣跨敤鐨刣ot鏂囦歡銆?br />榪欐牱鐨勮剼鏈湁浜哄凡緇忓疄鐜頒簡錛屾垜浠彧瑕佷笅杞戒竴涓幇鎴愮殑灝卞彲浠ヤ簡錛岄鍏堜粠http://www.ioplex.com/~miallen/ 緗戠珯涓嬭澆涓涓猰kgraph鑴氭湰銆傝В鍘嬭鑴氭湰鍒板寘鍚玤mon.out鏂囦歡鐨勭洰褰曚笅銆備嬌鐢╩kgraph0.sh浜х敓璋冪敤鐨刯pg鍥懼儚鏂囦歡銆備緥濡傦細(xì)浣跨敤涓婇潰鐨勪緥瀛愶紝鐢熸垚cflow鐨勮皟鐢ㄥ浘銆?br />[linux /home/cflow-1.1/src]$ mkgraph0.sh cflow gmon.out
閮ㄥ垎璋冪敤鍥懼涓嬶紝鏈変簡榪欎釜鍥炬槸涓嶆槸瀵圭▼搴忔暣浣撴鏋舵湁浜嗕釜娓呮櫚鍦頒簡瑙o紝濡傛灉浣犲鐢熸垚鐨勮皟鐢ㄥ浘鏁堟灉涓嶆弧鎰忥紝浣犺繕鍙互閫氳繃淇敼mkgraph0鑴氭湰浣夸箣浜х敓鍚堥傜殑dot鏂囦歡鍗沖彲錛?br />

鎬葷粨錛?/strong>
浣跨敤gprof , Graphviz , mkgraph 鐢熸垚鍑芥暟璋冪敤鍥?br />1錛?浣跨敤 -pg 緙栬瘧鍜岄摼鎺ヤ綘鐨勫簲鐢ㄧ▼搴忋?br />2錛?鎵ц浣犵殑搴旂敤紼嬪簭浣夸箣鐢熸垚渚沢prof 鍒嗘瀽鐨勬暟鎹?br />3錛?浣跨敤mkgraph鑴氭湰鐢熸垚鍥懼艦鍖栫殑鍑芥暟璋冪敤鍥俱?/p>

鐩稿叧璧勬枡錛?/strong>
鏂囨。錛氱敤 Graphviz 鍙鍖栧嚱鏁拌皟鐢?br />鏂囨。錛歋peed your code with the GNU profiler
鏂囨。錛歡ropf 甯姪鏂囦歡
Mkgraph 鑴氭湰錛?a >http://www.ioplex.com/~miallen/
Graphviz 宸ュ叿錛?a >http://www.graphviz.org
Cflow         錛?a >http://www.gnu.org/software/cflow/
錛堣矗浠葷紪杈戯細(xì)鍩庡皹 68476636-8003錛?/p>

鍘熸枃鍦板潃錛?a >鐐瑰嚮鎵撳紑閾炬帴http://os.51cto.com/art/200703/41426_2.htm










jackdong 2012-10-21 12:36 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              久久久久久一区二区| 久久综合综合久久综合| 亚洲欧美中文日韩在线| 欧美国产日韩视频| 久久精品成人一区二区三区蜜臀| 欧美精品性视频| 伊人色综合久久天天五月婷| 性亚洲最疯狂xxxx高清| 亚洲视频每日更新| 国产精品美女久久| 午夜日韩av| 亚洲女人小视频在线观看| 国产精品人人做人人爽| 欧美一区成人| 欧美一区二区精品在线| 国模大胆一区二区三区| 久久影视精品| 91久久午夜| 久久久久久夜| 亚洲字幕在线观看| 国产麻豆91精品| 欧美一区二区三区四区高清| 亚洲少妇在线| 一区二区三区国产| 久久久噜噜噜久噜久久 | 亚洲午夜精品福利| 欧美承认网站| 久久精品色图| 亚洲一二三级电影| 亚洲国产精品一区在线观看不卡| 在线午夜精品自拍| 日韩视频在线免费| 欧美亚洲成人网| 午夜亚洲伦理| 欧美在线观看网站| 亚洲国产精品精华液网站| 亚洲人成网站在线观看播放| 欧美日韩一区在线视频| 欧美中文在线观看国产| 麻豆精品一区二区综合av| 一区二区三区日韩欧美精品| 午夜精品亚洲| 亚洲剧情一区二区| 先锋影院在线亚洲| 亚洲成在人线av| 一区二区欧美在线观看| 国产亚洲福利一区| 亚洲欧洲精品一区二区三区| 国产欧美一区二区视频| 亚洲国产精品成人综合| 国产农村妇女精品一区二区| 欧美aaa级| 国产精品在线看| 亚洲福利av| 国产午夜亚洲精品羞羞网站| 亚洲免费观看在线观看| 午夜精品久久久久久久99黑人| 亚洲成人在线免费| 亚洲私人影吧| 亚洲精品永久免费| 久久av一区二区三区漫画| 亚洲午夜小视频| 欧美.日韩.国产.一区.二区| 欧美一区二区三区在线视频| 欧美区在线播放| 老鸭窝91久久精品色噜噜导演| 欧美日韩三区| 亚洲黄色在线视频| 黄色影院成人| 午夜亚洲一区| 亚洲欧美网站| 欧美日韩裸体免费视频| 亚洲电影免费观看高清完整版| 国产日韩欧美不卡| 亚洲深夜福利网站| 亚洲视频在线观看| 久久精品国产99| 免费久久99精品国产| 久久精品成人一区二区三区| 欧美日韩一区二区在线视频| 亚洲国产成人高清精品| 亚洲国产福利在线| 久久九九精品| 蜜桃精品久久久久久久免费影院| 国产亚洲欧洲一区高清在线观看| 亚洲在线国产日韩欧美| 亚洲欧美一区二区原创| 欧美视频专区一二在线观看| 亚洲人成人一区二区在线观看| 亚洲欧洲精品成人久久奇米网 | 亚洲一区二区三区久久| 中日韩高清电影网| 欧美片在线观看| 99精品国产热久久91蜜凸| 一区二区三区精品视频| 欧美日韩一区二区三区在线观看免| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产精品激情在线观看| 欧美α欧美αv大片| 亚洲欧洲综合另类| 99这里有精品| 国产精品v欧美精品v日韩精品| 一区二区三区欧美日韩| 亚洲欧美激情一区| 国产日韩亚洲欧美综合| 久久精品日韩一区二区三区| 蜜臀va亚洲va欧美va天堂| 亚洲国产精品va在看黑人| 美国成人毛片| 亚洲国产精品高清久久久| 欧美电影资源| 一本久久a久久精品亚洲| 亚洲欧美中文另类| 国产综合久久久久久| 久久久综合免费视频| 亚洲国产精品悠悠久久琪琪| 99re在线精品| 国产精品亚洲激情 | 91久久亚洲| 欧美日产一区二区三区在线观看| 99xxxx成人网| 久久久精品久久久久| 91久久久久久久久久久久久| 欧美日韩一区二区三区在线看| 亚洲一区二区三区777| 久久免费国产精品| 一本久道久久综合婷婷鲸鱼| 国产欧美欧美| 欧美精品一区二区视频| 亚洲欧美日韩国产综合在线| 欧美freesex交免费视频| 中文一区二区在线观看| 国产主播一区二区三区四区| 欧美精品国产一区二区| 午夜在线a亚洲v天堂网2018| 欧美激情91| 欧美在线首页| 亚洲美女免费视频| 国产资源精品在线观看| 欧美日韩亚洲综合| 久久人人爽人人爽爽久久| 在线亚洲一区观看| 欧美激情精品久久久久久黑人| 午夜亚洲视频| 久久资源av| 亚洲国产欧美在线人成| 欧美日韩三级视频| 欧美一区二区视频在线观看| 欧美韩国日本综合| 欧美在线免费观看视频| 日韩视频免费在线观看| 国产亚洲欧洲一区高清在线观看 | 久久婷婷人人澡人人喊人人爽| 一区二区激情视频| 亚洲国产精品久久人人爱蜜臀| 久久精品官网| 午夜精品成人在线| 一区二区三区成人精品| 91久久线看在观草草青青| 狠狠色狠狠色综合日日tαg| 国产精品久久久久一区| 欧美日韩精品| 欧美激情中文字幕一区二区| 久久午夜精品一区二区| 午夜在线a亚洲v天堂网2018| 亚洲一区欧美| 一本色道久久综合| 在线欧美日韩国产| 黄色在线成人| 伊人久久大香线蕉综合热线 | 亚洲国产精品成人精品| 国产一区二区在线观看免费播放| 国产精品久久久久影院亚瑟 | 亚洲自拍偷拍色片视频| 一本久久a久久精品亚洲| 亚洲欧洲久久| 亚洲三级电影全部在线观看高清| 在线成人h网| 亚洲第一免费播放区| 激情av一区| 亚洲国产日韩美| 亚洲人久久久| 一本久久综合亚洲鲁鲁| 一区二区三区免费网站| 在线亚洲成人| 亚洲欧美日韩视频一区| 欧美一区二区三区在线视频 | 一区二区三区久久精品| 一区二区三区精品在线| 亚洲在线国产日韩欧美| 欧美一区国产在线| 麻豆国产精品一区二区三区| 欧美国产精品一区| 欧美三级视频在线播放| 国产欧美精品久久| 黄色成人在线免费| 亚洲精品一区二区三区av| 中日韩美女免费视频网址在线观看| 亚洲亚洲精品三区日韩精品在线视频| 亚洲一二区在线|