óÀ½, ÀÌÀü, ´ÙÀ½, ¸¶Áö¸· ¼½¼Ç, ¸ñÂ÷


gprof ¸í·É¾î »ç¿ë¹ý

ÇÁ·Î±×·¥ ½ÇÇàÀ» ÅëÇÏ¿© ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏ `gmon.out'À» ¾òÀº ÈÄ¿¡´Â gprof¸¦ »ç¿ëÇÏ¿© `gmon.out'³»¿¡ ÀÖ´Â Á¤º¸¸¦ Çؼ®ÇÒ ¼ö ÀÖ´Ù. gprofÇÁ·Î±×·¥Àº flat profile°ú call graph¸¦ Ç¥ÁØ Ãâ·Â¿¡ ÇÁ¸°Æ®ÇÑ´Ù. ÀϹÝÀûÀ¸·Î `>'¸¦ »ç¿ëÇÏ¿© Ç¥ÁØ Ãâ·ÂÀ» ÆÄÀÏ·Î ÀçÁöÁ¤(redirect)ÇÑ´Ù.

gprof ÀÇ ¸í·É Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

gprof options [executable-file [profile-data-files...]] [> outfile]

¿©±â¼­ '[', ']'´Â ¼±ÅÃÀûÀÎ ÀÎÀÚ¸¦ ³ªÅ¸³½´Ù.

½ÇÇà ÆÄÀÏ executable-fileÀ» ÁöÁ¤ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â 'a.out'ÀÌ »ç¿ëµÈ´Ù. profile-data-files¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â `gmon.out' ÆÄÀÏÀÌ »ç¿ëµÇ¸ç, ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏÀÌ ¿Ã¹Ù¸¥ Æ÷¸ËÀ» °¡Áö°í ÀÖÁö ¾Ê°Å³ª, ÁöÁ¤µÈ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏÀÌ ½ÇÇàÈ­ÀÏÀÎ °æ¿ì¿¡´Â ¿¡·¯ ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù.

µÎ °³ ÀÌ»óÀÇ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏÀ» »ç¿ëÇÒ °æ¿ì¿¡´Â executable-fileµÚ¿¡ ¿©·¯°³ÀÇ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏÀ» ±â¼úÇÏ¸é µÇ°í º¹¼ö°³ÀÇ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ÀÖ´Â Á¤º¸µéÀ» Á¾ÇÕÇÏ¿© Åë°è Á¤º¸°¡ ÀÛ¼ºµÈ´Ù.

¿É¼ÇÀÇ ÁöÁ¤ ¼ø¼­´Â ¿É¼ÇÀÇ ÁöÁ¤¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù.

Ãâ·Â°ú °ü·ÃµÈ ¿É¼Ç

Ãâ·Â°ú °ü·ÃµÈ ¿É¼ÇÀº gprof ÀÌ »ý¼ºÇÏ´Â Ãâ·Â Æ÷¸ËÀ» ÁöÁ¤ÇÑ´Ù.

Ãâ·Â°ú °ü·ÃµÈ ¿É¼Ç¿¡¼­´Â Ãâ·Â¿¡ Æ÷ÇÔ ¶Ç´Â ¹èÁ¦½Ãų ÇÔ¼ö¸¦ ÁöÁ¤ÇÏ´Â ¼±Åà »çÇ×ÀÇ symspec À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. Ãâ·Â °ü·Ã ¿É¼ÇÀº ¼­·Î ´Ù¸¥ symspec À» »ç¿ëÇÏ¿© ½Éº¼ÀÇ ÁýÇÕÀ» ¹èÁ¦ ȤÀº Æ÷ÇÔ½ÃÅ°±â À§ÇÏ¿© ¿©·¯¹ø ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. Symspecs ¼½¼Ç ÂüÁ¶

´ÙÀ½¿¡ ¼³¸íÇÏ´Â ¿É¼ÇÁß Çϳª¸¦ ÁöÁ¤ÇÏ¸é ±âº» ¿É¼Ç (`-p -q')¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ³»¿ë-¸ðµç ÇÔ¼ö¿¡ ´ëÇÑ flat profile Ãâ·Â, call graph ºÐ¼®-Àº ¹«½ÃµÇ°í ÁöÁ¤µÈ ¿É¼Ç¸í¼¼¿¡ µû¸¥ Ãâ·ÂÀ» ÇÑ´Ù.

-A[symspec]
--annotated-source[=symspec]
`-A' ¿É¼ÇÀº gprof ¿¡¼­ annotated source Äڵ尡 Ãâ·ÂµÇµµ·Ï Áö½ÃÇÑ´Ù. symspec ÀÌ ÁöÁ¤µÈ °æ¿ì Ãâ·ÂÀº sympspec¿¡ Á¤ÀÇµÈ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼¸¸À» Æ÷ÇÔÇÑ´Ù. Annotated Source ¸®½ºÆà ¼½¼Ç Âü°í
-b
--brief
`-b'¿É¼ÇÀÌ ÁöÁ¤µÇ¸é, gprofÀº Ãâ·Â¿¡¼­ Å×ÀÌºí³»¿¡ ÀÖ´Â Çʵ忡 ´ëÇÑ Àǹ̸¦ ¼³¸íÇÏ´Â ºÎºÐÀÌ Æ÷ÇÔµÇÁö ¾Ê´Â´Ù. ÀÌ ¿É¼ÇÀº gprof¼­ÀÇ Ãâ·Â °á°ú¸¦ ÀμâÇÏ¿© º¸°Å³ª Çʵ忡 ´ëÇÑ Àǹ̸¦ ¼³¸íÇÏ´Â ºÎºÐÀÌ ÇÊ¿äÇÏÁö ¾ÊÀº °æ¿ì À¯¿ëÇÑ ¿É¼ÇÀÌ´Ù.
-C[symspec]
--exec-counts[=symspec]
`-C' ¿É¼ÇÀº gprof ÀÇ Ãâ·Â¿¡¼­ ÇÔ¼ö¿¡ °ü·ÃµÈ Áý°è ±â·Ï°ú °¢°¢ÀÇ ÇÔ¼ö°¡ È£ÃâµÈ Ƚ¼ö¸¦ Æ÷ÇÔÇϵµ·Ï Áö½ÃÇÑ´Ù. symspec ÀÌ ÁöÁ¤µÈ °æ¿ì, symspec¿¡ Á¤ÀÇµÈ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µéÀÇ ±â·Ï¸¸À» Ãâ·ÂÇÑ´Ù. ÇÁ·ÎÆÄÀÏ µ¥ÀÌÀÌŸ ÆÄÀÏ¿¡ ±âº» ºí·ÏÀÇ Ä«¿îÆ® ·¹Äڵ尡 Æ÷ÇԵǾî ÀÖ´Â °æ¿ì, `-C' ¿É¼Ç°ú `-l' ¿É¼ÇÀ» ÇÔ²² ÁöÁ¤ÇÏ¸é ±âº» ºí·ÏÀÇ ½ÇÇà Ä«¿îÆ®°¡ Áý°èµÇ¾î Ãâ·Â¿¡ Æ÷ÇԵȴÙ.
-i
--file-info
`-i' ¿É¼ÇÀº ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ´ëÇÑ ¿ä¾à Á¤º¸¸¸À» Ãâ·ÂÇϵµ·Ï Áö½ÃÇÑ´Ù. È÷½ºÅä±×·¥, call graph, ±âº» ºí·ÏÀÇ Ä«¿îÆ® ·¹ÄÚµåÀÇ °¹¼ö°¡ ¿ä¾à Á¤º¸¿¡ Ç¥½ÃµÈ´Ù.
-I dirs
--directory-path=dirs
`-I' ¿É¼ÇÀº ¼Ò½º ÆÄÀÏ °Ë»ö °æ·Î·Î »ç¿ëµÉ µð·ºÅ丮¸¦ ÁöÁ¤Çϱâ À§ÇÏ¿© »ç¿ëµÈ´Ù. ȯ°æ º¯¼ö GPROF_PATH ¸¦ »ç¿ëÇÏ¿© ¼Ò½º ÆÄÀÏ °Ë»ö °æ·ÎÀÇ µð·ºÅ丮¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. annotated source Ãâ·ÂÀ» À§ÇØ ÁÖ·Î »ç¿ëµÇ´Â ¿É¼ÇÀÌ´Ù.
-J[symspec]
--no-annotated-source[=symspec]
`-J' ¿É¼ÇÀº annotated source Äڵ带 Ãâ·ÂÇÏÁö ¾Êµµ·Ï Áö½ÃÇÑ´Ù. symspec ÁöÁ¤ÀÌ ÀÖ´Â °æ¿ì, gprof Àº symspec ¿¡¼­ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µéÀ» Á¦¿ÜÇÑ annotated source¸¦ Ãâ·ÂÇÑ´Ù.
-L
--print-path
ÀϹÝÀûÀ¸·Î ¼Ò½º ÆÄÀÏÀÇ À̸§Àº ÆÄÀÏ °æ·Î¸¦ Á¦¿ÜÇÑ ÆÄÀÏ À̸§¸¸ÀÌ Ãâ·ÂµÈ´Ù.  ¼Ò½ºÆÄÀÏÀÇ À̸§À» ¿ÏÀüÇÑ °æ·Î¸í°ú ÇÔ²² Ãâ·ÂÇϱâ À§Çؼ­´Â `-L' ¿É¼ÇÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ¼Ò½º ÆÄÀϸíÀÇ ¿ÏÀüÇÑ °æ·Î¸íÀº À̹ÌÁö ÆÄÀÏ(image file)³»¿¡ ÀÖ´Â ½Éº¼¸¯ µð¹ö±ë Á¤º¸¿¡¼­ ¾ò¾îÁö¸ç ÄÄÆÄÀÏ·¯°¡ È£ÃâµÈ µð·ºÅ丮¿¡ ´ëÇÑ »ó´ë °æ·ÎÀÌ´Ù.
-p[symspec]
--flat-profile[=symspec]
`-p' ¿É¼ÇÀº flat profileÀ» Ãâ·ÂÇϵµ·Ï Áö½ÃÇÑ´Ù. symspec ÁöÁ¤ÀÌ ÀÖ´Â °æ¿ì, gprof Àº symspec ¿¡¼­ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µé¸¸À» flat profileÀÇ Ãâ·Â¿¡ Æ÷ÇÔ½ÃŲ´Ù. Flat Profile ¼½¼Ç Âü°í
-P[symspec]
--no-flat-profile[=symspec]
`-P' ¿É¼ÇÀº flat profileÀÌ Ãâ·Â¿¡ Æ÷ÇÔµÇÁö ¾Êµµ·Ï Áö½ÃÇÑ´Ù. symspec ÁöÁ¤ÀÌ ÀÖ´Â °æ¿ì, gprof Àº symspec ¿¡¼­ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µéÀ» Á¦¿ÜÇÑ flat profileÀ» Ãâ·ÂÇÑ´Ù.
-q[symspec]
--graph[=symspec]
`-q' ¿É¼ÇÀº gprof ÀÇ Ãâ·Â¿¡ call graph ºÐ¼®ÀÌ Æ÷ÇԵǵµ·Ï Áö½ÃÇÑ´Ù. symspec ÁöÁ¤ÀÌ ÀÖ´Â °æ¿ì, gprof Àº symspec ¿¡¼­ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µé°ú À̵éÀÇ ÀÚ½Ä ½Éº¼¸¸À» Æ÷ÇÔÇÑ call graph°¡ Ãâ·ÂµÈ´Ù. Call Graph ¼½¼Ç Âü°í
-Q[symspec]
--no-graph[=symspec]
`-Q' ¿É¼ÇÀº call graph°¡ Ãâ·Â¿¡ Æ÷ÇÔµÇÁö ¾Êµµ·Ï Áö½ÃÇÑ´Ù. symspec ÁöÁ¤ÀÌ ÀÖ´Â °æ¿ì, gprof Àº symspec ¿¡¼­ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼À» Á¦¿ÜÇÑ call graph¸¦ Ãâ·ÂÇÑ´Ù.
-y
--separate-files
ÀÌ ¿É¼ÇÀº annotated source Ãâ·Â¿¡¸¸ ¿µÇâÀ» ÁÖ´Â ¿É¼ÇÀ¸·Î ÀϹÝÀûÀ¸·Î , gprof Àº annotated source ÆÄÀϵéÀ» Ç¥ÁØ Ãâ·Â¿¡ ÇÁ¸°Æ®ÇÏÁö¸¸, `-y' ¿É¼ÇÀ» »ç¿ëÇÏ¿© 'path/filename' ¿¡ ´ëÇÑ annotated source ¸¦ `filename-ann' ÆÄÀÏ¿¡ ±â·Ïµµ·Ï ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.
-Z[symspec]
--no-exec-counts[=symspec]
`-Z' ¿É¼ÇÀº ÇÔ¼öÀÇ Áý°è °á°ú¿Í È£Ãâ Ƚ¼ö¿¡ ´ëÇÑ Á¤º¸°¡ Ãâ·ÂµÇÁö ¾Êµµ·Ï Áö½ÃÇÑ´Ù. symspec ÁöÁ¤ÀÌ ÀÖ´Â °æ¿ì, gprof Àº symspec ¿¡ Á¤ÀÇµÈ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µéÀ» Á¦¿ÜÇÑ ÇÔ¼öÀÇ Áý°è °á°ú ¹× È£Ãâ Ƚ¼ö¿¡ ´ëÇÑ Á¤º¸¸¦ Ãâ·ÂÇÑ´Ù.
--function-ordering
`--function-ordering' ¿É¼ÇÀº ÇÁ·ÎÆÄÀϸµ µ¥ÀÌÅÍ¿¡ ±âÃÊÇÏ¿© Á¦¾ÈµÈ ÇÁ·Î±×·¥¿¡¼­ÀÇ ÇÔ¼ö ¼ø¼­¿¡ µû¶ó Ãâ·ÂÇÑ´Ù. ÀÌ ¿É¼ÇÀº ½ÇÇà È­Àϳ»¿¡¼­ÀÇ ÇÔ¼öÀÇ ÀÓÀÇ ¼ø¼­È­¸¦ Áö¿øÇÏ´Â ½Ã½ºÅÛ¿¡¼­ ÇÁ·Î±×·¥ÀÇ ÆäÀÌ¡, tlb(table lookup buffer) ¹× ij½¬ µ¿ÀÛ(cache behavior)À» Çâ»ó½Ãų ¼ö ÀÖ´Â ¼ø¼­¸¦ Á¦½ÃÇÑ´Ù. ¸µÄ¿°¡ ÇÔ¼öµéÀ» ƯÁ¤ ¼ø¼­·Î ¹èÄ¡ÇÏ´Â °Í°ú °ü·ÃµÈ ÀÚ¼¼ÇÑ ³»¿ëÀº ½Ã½ºÅÛ¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖÀ¸¸ç, ÀÌ·¯ÇÑ ³»¿ëÀº º» ¸Å´º¾ó¿¡¼­´Â ´Ù·çÁö ¾Ê´Â´Ù.
--file-ordering map_file
`--file-ordering' ¿É¼ÇÀº ÇÁ·ÎÆÄÀϸµ µ¥ÀÌÅÍ¿¡ ±âÃÊÇÏ¿© Á¦¾ÈµÈ .o link line ordering¿¡ µû¶ó Ãâ·ÂÇÑ´Ù. ÀÌ ¿É¼ÇÀº ½ÇÇàÈ­ÀÏ ³»¿¡¼­ÀÇ ÇÔ¼öÀÇ ÀÓÀÇ ¼ø¼­¸¦ Áö¿øÇÏÁö ¾Ê´Â ½Ã½ºÅÛ¿¡¼­ ÇÁ·Î±×·¥ÀÇ ÆäÀÌ¡, tlb ¹× ij½¬ µ¿ÀÛ(cache behavior)À» Çâ»ó½Ãų ¼ö ÀÖ´Â ¼ø¼­¸¦ Á¦½ÃÇÑ´Ù. ÀÌ ¿É¼Ç°ú ÇÔ²² `-a' ¿É¼ÇÀ» »ç¿ëÇϱ⸦ ±ÇÀåÇÑ´Ù. map_file ÀÎÀÚ´Â ÇÔ¼ö À̸§°ú ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ ¸ÅÇÎ Á¤º¸°¡ Æ÷ÇÔµÈ ÆÄÀÏ¿¡ ´ëÇÑ °æ·Î¸íÀÌ´Ù. ÀÌ ÆÄÀÏÀÇ Æ÷¸ËÀº nm ÇÁ·Î±×·¥ÀÇ Ãâ·Â°ú À¯»çÇÏ´Ù.
c-parse.o:00000000 T yyparse
c-parse.o:00000004 C yyerrflag
c-lang.o:00000000 T maybe_objc_method_name
c-lang.o:00000000 T print_lang_statistics
c-lang.o:00000000 T recognize_objc_keyword
c-decl.o:00000000 T print_lang_identifier
c-decl.o:00000000 T print_lang_type
...

 
map_file ÆÄÀÏÀ» »ý¼ºÇϱâ À§Çؼ­´Â GNU nm `--extern-only' `--defined-only' `-v' `--print-file-name' »ç¿ëÇÑ´Ù.
-T
--traditional
`-T' ¿É¼ÇÀº gprof Ãâ·ÂÀÇ ÇüŸ¦ ±âÁ¸ÀÇ BSD ½ºÅ¸ÀÏÀ» µû¸£µµ·Ï Áö½ÃÇÑ´Ù.
-w width
--width=width
gprof Ãâ·ÂÀÇ ÆøÀ» width ·Î ÁöÁ¤ÇÑ´Ù. ÇöÀç´Â call graphÀÇ ÇÏ´Ü¿¡ ÇÔ¼ö À妽º¸¦ Ãâ·ÂÇÒ ¶§¿¡¸¸ »ç¿ëµÈ´Ù.
-x
--all-lines
ÀÌ ¿É¼ÇÀº annotated source Ãâ·Â¿¡¸¸ ¿µÇâÀ» ÁÖ´Â ¿É¼ÇÀÌ´Ù. º°µµÀÇ ÁöÁ¤ÀÌ ¾ø´Â °æ¿ì ±âº»ÀûÀ¸·Î ±âº» ºí·ÏÀÇ ½ÃÀÛ À§Ä¡¿¡ ÀÖ´Â ¶óÀε鸸ÀÌ annotateµÇ´Âµ¥, ÀÌ ¿É¼ÇÀ» ÁöÁ¤Çϸé, ±âº» ºí·Ï ³»¿¡ Àִ ù ¹ø° ¶óÀÎÀÇ annotationÀ» ¹Ýº¹ÇÏ¿© ¸ðµç ¶óÀÎÀÌ annotateµÈ´Ù. ÀÌ ¿É¼ÇÀº tcovÀÇ `-a'¿É¼Ç°ú À¯»çÇÏ´Ù.
--demangle
--no-demangle
ÀÌ ¿É¼ÇÀº C++ ½Éº¼ À̸§µéÀ» Ãâ·Â½Ã¿¡ ¾Ë¾Æº¸±â ½±°Ô ¸¸µç´Ù(demangle). º°µµÀÇ ÁöÁ¤ÀÌ ¾ø´Â °æ¿ì¿¡´Â --demangle ÀÌ ±âº»ÀûÀ¸·Î »ç¿ëµÈ´Ù. --no-demangle ¿É¼ÇÀº dmangling ±â´ÉÀ» ÇØÁ¦ÇÑ´Ù.

ºÐ¼®°ú °ü·ÃµÈ ¿É¼Ç

-a
--no-static
`-a' ¿É¼ÇÀº gprof ·Î ÇÏ¿©±Ý Á¤ÀûÀ¸·Î ¼±¾ðµÈ (private) ÇÔ¼ö¿¡ ´ëÇÑ Ãâ·ÂÀ» ÇÏÁö ¾Êµµ·Ï Áö½ÃÇÑ´Ù( À̵é ÇÔ¼öÀÇ À̸§Àº global·Î ¸®½ºÆ®µÇÁö ¾Ê¾Æ¼­ À̵éÀÌ Á¤ÀÇµÈ ÆÄÀÏ/ÇÔ¼ö/ºí·° ¿ÜºÎ¿¡¼­´Â º¸¿©ÁöÁö ¾Ê´Â´Ù.) À̵é ÇÔ¼ö¿¡¼­ ¼ÒºñµÇ´Â ½Ã°£, À̵é ÇÔ¼ö·ÎÀÇ È£Ã⠶Ǵ À̵é ÇÔ¼ö¿¡¼­ÀÇ È£Ãâ°ú °°Àº ÇÁ·ÎÆÄÀÏ Á¤º¸´Â ½ÇÇà ÆÄÀÏ¿¡¼­ À̵é ÇÔ¼ö°¡ È£ÃâµÇ±â ¹Ù·Î Àü¿¡ ·ÎµåµÈ ÇÔ¼ö¿¡ ¸ðµÎ Æ÷ÇԵǾîÁø´Ù.) ÀÌ ¿É¼ÇÀº flat profile°ú call grapth¿¡ ¸ðµÎ ¿µÇâÀ» ÁØ´Ù.
-c
--static-call-graph
`-c' ¿É¼ÇÀº ¿ÀºêÁ§Æ® ÆÄÀÏÀÇ text °ø°£À» °Ë»çÇÏ¿© ÀÌÁø ¸Ó½® Äڵ峻¿¡ ÀÖ´Â ÇÔ¼ö È£ÃâÀ» È®ÀÎÇÏ´Â ÈÞ¸®½ºÆ½À» »ç¿ëÇÏ¿©, ÇÁ·Î±×·¥ÀÇ call graph¸¦ È®ÀåÇϵµ·Ï Áö½ÃÇÑ´Ù. º¸ÅëÀÇ call graph ·¹ÄÚµåµéÀº ÇÔ¼ö·Î ÁøÀÔµÈ °æ¿ì¿¡¸¸ »ý¼ºµÇ±â ¶§¹®¿¡, ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé È£ÃâµÉ ¼öµµ ÀÖ¾úÁö¸¸ ½ÇÁ¦·Î´Â È£ÃâµÇÁö ¾ÊÀº ÀÚ½Ä ÇÔ¼öµéÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, ÇÁ·ÎÆÄÀϸµ ¿É¼ÇÀ¸·Î ÄÄÆÄÀϵÇÁö ¾ÊÀº ÇÔ¼öµé¿¡ ´ëÇÑ È£Ãâµµ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, ÀÌ·¯ÇÑ È®ÀÎÀº À̵é ÇÔ¼ö¿¡ ´ëÇÑ ½Éº¼ Å×ÀÌºí ¿£Æ®¸®°¡ Á¸ÀçÇÏ´Â °æ¿ì¿¡¸¸ °¡´ÉÇÏ´Ù.  µ¿Àû ¶óÀ̺귯¸®¿¡ ÀÖ´Â ·çƾ¿¡ ´ëÇÑ È£ÃâÀº ÀϹÝÀûÀ¸·Î ÀÌ ¿É¼Ç ¼³Á¤À» ÅëÇÏ¿© ã¾Æ³¾ ¼ö ¾ø´Ù. ÈÞ¸®½ºÆ½À» »ç¿ëÇÏ¿© È®ÀÎµÈ ºÎ¸ð ¶Ç´Â ÀÚ½Ä ÇÔ¼ö´Â call graph¿¡¼­ call counts°ªÀÌ `0'À¸·Î ³ªÅ¸³­´Ù.
-D
--ignore-non-functions
`-D' ¿É¼ÇÀº ÇÔ¼ö°¡ ¾Æ´Ñ °ÍÀ¸·Î ÆÇ´ÜÇÑ ½Éº¼À» gprof ¿¡¼­ ¹«½ÃÇϵµ·Ï Áö½ÃÇÑ´Ù. `-D' ¿É¼ÇÀÌ Áö¿øµÇ´Â Solaris³ª HP/UX°°Àº ½Ã½ºÅÛ¿¡¼­ ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé Á»´õ Á¤È®ÇÑ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅ͸¦ ¾òÀ» ¼ö°¡ ÀÖ´Ù.
-k from/to
`-k' ¿É¼ÇÀº from symspec¿¡ ÀÏÄ¡ÇÏ´Â ½Éº¼¿¡¼­ to symspec¿¡ ÀÏÄ¡ÇÏ´Â ½Éº¼·ÎÀÇ ¸ðµç arcsÀ» call grapht¿¡¼­ »èÁ¦Çϵµ·Ï Áö½ÃÇÑ´Ù.
-l
--line
`-l' ¿É¼ÇÀº ¶óÀÎ ´ÜÀ§ÀÇ ÇÁ·ÎÆÄÀϸµ ±â´ÉÀ» »ç¿ëÇϵµ·Ï Áö½ÃÇÑ´Ù. ¶óÀÎ ´ÜÀ§ÀÇ ÇÁ·ÎÆÄÀϸµ ±â´ÉÀÌ ¼³Á¤µÇ¸é, È÷½ºÅä±×·¥ÀÇ hits´Â ÇÔ¼öº°·Î Áý°èµÇ´Â ´ë½Å¿¡ °³º° ¼Ò½º ÄÚµå ¶óÀκ°·Î Áý°èµÈ´Ù. ÇÁ·Î±×·¥ÀÌ ±âº» ºí·Ï Ä«¿îÆà ±â´ÉÀÌ ¼³Á¤µÇ¾î ÄÄÆÄÀÏµÈ °æ¿ì¿¡ ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÄÚµåÀÇ °¢°¢ÀÇ ¶óÀκ°·Î ½ÇÇà Ƚ¼ö¸¦ °è»êÇÒ ¼ö ÀÖ´Ù. ¶óÀÎ ´ÜÀ§ÀÇ ÇÁ·ÎÆÄÀϸµÀº ÇÁ·Î±×·¥¿¡¼­ ±Ô¸ð°¡ Å« ÇÔ¼ö ³»ÀÇ ¾î´À ÁöÁ¡¿¡¼­ ¸¹Àº ½Ã°£À» ¼Ò¸ðÇÏ´Â Áö¸¦ ã¾Æ³»´Âµ¥ µµ¿òÀÌ µÇÁö¸¸, gprofÀÇ ½ÇÇà ½Ã°£À» Áõ°¡½ÃÅ°°í Åë°èÀû ºÎÁ¤È®¼ºÀ» ÁõÆø½Ãų ¼ö°¡ ÀÖÀ¸¹Ç·Î À¯ÀÇÇÏ¿©¾ß ÇÑ´Ù. Åë°èÀû »ùÇøµ ¿¡·¯ ¼½¼Ç ÂüÁ¶
-m num
--min-count=num
ÀÌ ¿É¼ÇÀº ½ÇÇàȽ¼ö(execution count)ÀÇ Ãâ·Â¿¡¸¸ ¿µÇâÀ» ÁÖ´Â ¿É¼ÇÀ¸·Î num À¸·Î ÁöÁ¤µÈ Ƚ¼ö ÀÌÇÏ·Î ½ÇÇàµÈ ½Éº¼¿¡ ´ëÇؼ­ Ãâ·Â¿¡¼­ Á¦¿Ü½ÃŲ´Ù.
-n[symspec]
--time[=symspec]
`-n' ¿É¼ÇÀº gprof ÀÇ call graph ºÐ¼®½Ã¿¡, ¿É¼Ç ÀÎÀÚ·Î ÁÖ¾îÁø symspec ¿¡¼­ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µé¿¡ ´ëÇؼ­¸¸ ½Ã°£À» ÀüÆÄ(propagate)Çϵµ·Ï Áö½ÃÇÑ´Ù.
-N[symspec]
--no-time[=symspec]
`-N' ¿É¼ÇÀº gprof ÀÇ call graph ºÐ¼®½Ã¿¡ ¿É¼Ç ÀÎÀÚ·Î ÁÖ¾îÁø symspec ¿¡ Á¤ÀÇÇÑ ½Éº¼°ú ÀÏÄ¡ÇÏ´Â ½Éº¼µé¿¡ ´ëÇؼ­ ½Ã°£À» ÀüÆÄÇÏÁö ¾Êµµ·Ï Áö½ÃÇÑ´Ù.
-z
--display-unused-functions
`-z' ¿É¼ÇÀ» ÁöÁ¤Çϸé gprof´Â flat profile³»¿¡ ÀÖ´Â ¸ðµç ÇÔ¼ö - È£ÃâµÇÁö ¾Ê´Â ÇÔ¼ö, ½Ã°£ÀÌ ¼ÒºñµÇÁö ¾ÊÀº ÇÔ¼ö±îÁöµµ Æ÷ÇÔÇÑ -¸¦ ºÐ¼®¿¡ »ç¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀº `-c' ¿É¼Ç°ú ÇÔ²² »ç¿ëÇÏ¿© È£ÃâµÇÁö ¾Ê´Â ·çƾÀ» ã°íÀÚ ÇÒ ¶§ À¯¿ëÇÑ ¿É¼ÇÀÌ´Ù.
 

±âŸ ¿É¼Ç

-d[num]
--debug[=num]
`-d num' ¿É¼ÇÀº µð¹ö±ë ¿É¼ÇÀ» ÁöÁ¤ÇÑ´Ù. ¿É¼Ç ÀÎÀÚ num °¡ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì¿¡´Â ¸ðµç µð¹ö±ë ±â´ÉÀ» »ç¿ëÇϵµ·Ï ¼³Á¤ÇÑ´Ù. gprof µð¹ö±ë  ¼½¼Ç ÂüÁ¶
-Oname
--file-format=name
ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏÀÇ Æ÷¸ËÀ» ¼±ÅÃÇÏ´Â ¿É¼ÇÀÌ´Ù. name ¿¡ »ç¿ë°¡´ÉÇÑ Æ÷¸ËÀº `auto' (º°µµÀÇ ÁöÁ¤ÀÌ ¾ø´Â °æ¿ì ±âº» ÁöÁ¤°ª), `bsd', `magic', °ú `prof (ÇöÀç´Â Áö¿øµÇÁö ¾ÊÀ½) 'ÀÌ ÀÖ´Ù.
-s
--sum
`-s' ¿É¼ÇÀº gprof °¡ ÀоîµéÀÎ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀϵ鿡¼­ÀÇ Á¤º¸¸¦ ¿ä¾àÇÏ¿© `gmon.sum'À̶ó´Â À̸§À» °¡Áø ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ±â·ÏÇϵµ·Ï Áö½ÃÇÑ´Ù. `gmon.sum'ÆÄÀÏ¿¡´Â gprof ¿¡¼­ ÀоîµéÀÎ ¸ðµç ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸°¡ Æ÷ÇԵǾî ÀÖ´Ù. `gmon.sum' ÆÄÀÏÀº ÁöÁ¤µÈ ÀÔ·Â ÆÄÀϵé Áß Çϳª°¡ µÉ ¼öµµ ÀÖÀ¸¸ç, ÀÌ °æ¿ì¿¡´Â ´Ù¸¥ ÀÔ·Â ÆÄÀϵ鿡 ÀÖ´Â µ¥ÀÌÅ͵éÀÌ `gmon.sum' ÆÄÀÏ¿¡ ÅëÇյȴÙ.  ±× ÈÄ¿¡ gprof ¸¦ `-s' ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾Ê°í ½ÇÇàÇÔÀ¸·Î½á `gmon.sum'³»¿¡ ÀÖ´Â ¸ð¾ÆÁø µ¥ÀÌÅÍ(accumulated data)¸¦ ºÐ¼®ÇÒ ¼ö ÀÖ´Ù.
-v
--version
`-v' Ç÷¡±×´Â gprof ÀÇ ÇöÀç ¹öÀü ¹øÈ£¸¦ Ãâ·ÂÇÏ°í Á¾·áÇϵµ·Ï Áö½ÃÇÑ´Ù.

»õ·Î¿î ¹öÀüÀÇ ¿É¼ÇÀ¸·Î ´ëüµÈ ÀÌÀü ¹öÀüÀÇ ¿É¼Ç

´ÙÀ½ÀÇ ¿É¼ÇµéÀº symspecs¸¦ »ç¿ëÇÏ´Â »õ·Î¿î ¿É¼Çµé·Î ´ëüµÈ °ÍµéÀÌ´Ù.
-e function_name
`-e function_name' ¿É¼ÇÀº call graph³»¿¡ function_nameÀ¸·Î ÁöÁ¤µÈ ÇÔ¼ö ¹× À̵é ÇÔ¼öÀÇ ÀÚ½Ä ÇÔ¼ö(child functions)¿¡ ´ëÇÑ Á¤º¸¸¦ Ãâ·ÂÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. function_nameÀ¸·Î ÁöÁ¤µÈ ÇÔ¼ö´Â ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ÇÔ¼öÀÇ ÀÚ½Ä ÇÔ¼ö·Î ¸®½ºÆÃÀº µÇÁö¸¸, index number´Â `[not printed]'·Î Ç¥½ÃµÈ´Ù. µÎ °³ ÀÌ»óÀÇ `-e'¿É¼ÇÀ» »ç¿ëÇÏ¿© ¿©·¯°³ÀÇ ÇÔ¼ö À̸§À» ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç, °¢°¢ÀÇ ÇÔ¼ö À̸§À» °¢°¢ÀÇ `-e' ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÏ¿©¾ß ÇÑ´Ù.
-E function_name
`-E function_name ¿É¼ÇÀº `-e' ¿É¼Ç°ú ºñ½ÁÇÏÁö¸¸, function_name À¸·Î ÁöÁ¤µÈ ÇÔ¼ö¿Í ±× ÀÚ½Ä ÇÔ¼ö(´Ù¸¥ °÷¿¡¼­ ÀÌ ÀÚ½Ä ÇÔ¼ö´Â È£ÃâµÇÁö ¾Ê´Â °æ¿ì)¿¡¼­ ¼ÒºñµÇ´Â ½Ã°£À» call graphtÀÇ ½Ã°£ ¹éºÐÀ²(percentages-of-time) °è»ê½Ã¿¡ »ç¿ëµÇÁö ¾Ê´Â´Ù´Â Â÷ÀÌ°¡ ÀÖ´Ù. µÎ °³ ÀÌ»óÀÇ '-E' ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍÀÇ ºÐ¼®½Ã¿¡ Á¦¿Ü½Ãų ÇÔ¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç, Á¦¿ÜµÉ ÇÔ¼ö´Â `-E' ¿É¼Ç Çϳª¿¡ Çϳª¾¿ ÁöÁ¤ÇÏ¿©¾ß  ÇÑ´Ù.
-f function_name
`-f function_name' ¿É¼ÇÀº call graph¸¦ function_name À¸·Î ÁöÁ¤µÈ ÇÔ¼ö¿Í ÀÌ ÇÔ¼öÀÇ ÀÚ½Ä ÇÔ¼ö·Î ÇÑÁ¤Çϵµ·Ï Áö½ÃÇÑ´Ù. µÎ °³ ÀÌ»óÀÇ `-f' ¿É¼ÇÀ» »ç¿ëÇÏ¿© call graph¿¡ Æ÷Ç﵃ ÇÔ¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç °¢°¢ÀÇ ÇÔ¼ö´Â `-f' ¿É¼Ç Çϳª¿¡ Çϳª¾¿ ÁöÁ¤ÇÏ¿©¾ß  ÇÑ´Ù.
-F function_name
`-F function_name' ¿É¼ÇÀº `-f' ¿É¼Ç°ú ºñ½ÁÇÏÁö¸¸, function_name À¸·Î ÁöÁ¤µÈ ÇÔ¼ö¿Í ÀÌ ÇÔ¼öÀÇ ÀÚ½Ä ÇÔ¼ö¿¡¼­ ¼ÒºñµÇ´Â ½Ã°£¸¸À» »ç¿ëÇÏ¿© call graph¿¡¼­ÀÇ Àüü ½Ã°£(total-time)°ú ½Ã°£ ¹éºÐÀ²(percentages-of-time)À» °è»êÇÑ´Ù´Â Á¡¿¡¼­ Â÷ÀÌ°¡ ÀÖ´Ù. µÎ °³ ÀÌ»óÀÇ `-F' ¿É¼ÇÀ» »ç¿ëÇÏ¿© call graph¿¡ Æ÷Ç﵃ ÇÔ¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç °¢°¢ÀÇ ÇÔ¼ö´Â `-F' ¿É¼Ç Çϳª¿¡ Çϳª¾¿ ÁöÁ¤ÇÏ¿©¾ß  ÇÑ´Ù. `-F' ¿É¼Ç°ú `-E' ¿É¼ÇÀÌ µ¿½Ã¿¡ »ç¿ëµÈ °æ¿ì¿¡´Â `-F' ¿É¼ÇÀ¸·Î ÁöÁ¤µÈ ³»¿ëÀÌ ¿ì¼±ÇÑ´Ù.

-e, -E, -f ¶Ç´Â -F ¿É¼ÇÀº Çѹø¿¡ ÇϳªÀÇ ÇÔ¼ö¸í¸¸À» ÁöÁ¤ÇÒ ¼ö ÀÖÀ½¿¡ À¯ÀÇÇÏ¿©¾ß ÇÑ´Ù. µÎ °³ÀÌ»óÀÇ ÇÔ¼ö¸íÀ» ÁöÁ¤ÇÏ°íÀÚ ÇÒ ¶§´Â ¿É¼ÇÀ» ¿©·¯¹ø »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº gprof ¸í·É ¿É¼ÇÀº

gprof -e boring -f foo -f bar myprogram > gprof.output

foo ¶Ç´Â bar ¿¡¼­´Â µµ´Þ °¡´ÉÇÑ ÇÔ¼öµéÀ» Æ÷ÇÔÇÏ°í boring¿¡¼­´Â µµ´ÞÇÒ ¼ö ¾ø´Â ¸ðµç ÇÔ¼öµéÀ» call graph¿¡¼­ ¸®½ºÆÃÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.

Symspecs

Ãâ·Â°ú °ü·ÃµÈ ¿É¼ÇÀÇ »ó´ç¼ö´Â symspecs (symbol specifications)À» »ç¿ëÇÏ¿© Ãâ·Â¿¡ Æ÷ÇÔ ¶Ç´Â ¹èÁ¦µÉ ÇÔ¼öµéÀ» ÁöÁ¤ÇÑ´Ù. symspecsÀº ´ÙÀ½°ú °°Àº ¹®¹ý ±ÔÄ¢¿¡ µû¶ó ÀÛ¼ºÇÑ´Ù.

  filename_containing_a_dot
| funcname_not_containing_a_dot
| linenumber
| ( [ any_filename ] `:' ( any_funcname | linenumber ) )

´ÙÀ½Àº symspecsÀÇ ¿¹ÀÌ´Ù.

main.c
"main.c" ÆÄÀϳ»¿¡ ÀÖ´Â ¸ðµç °ÍÀ» ¼±ÅÃÇÑ´Ù. gprof´Â "main.c" ¹®ÀÚ¿­ ³»¿¡ ÀÖ´Â '.' (dot)À» º¸°í "main.c"¸¦ ÇÔ¼ö À̸§ÀÌ ¾Æ´Ñ ÆÄÀϸíÀ¸·Î Çؼ®ÇÑ´Ù. ÆÄÀϸíÀ¸·Î »ç¿ëÇÏÁö¸¸ ¹®ÀÚ¿­ Áß°£¿¡ .(dot)°¡ ¾ø´Â °æ¿ì¿¡´Â ÆÄÀϸíÀÌ ':' (colon)À¸·Î ³¡³ªµµ·Ï ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î "odd:"Àº "odd"¶ó´Â ÆÄÀϸíÀ¸·Î Çؼ®µÈ´Ù.
main
"main" À̶ó´Â À̸§À» °¡Áø ¸ðµç ÇÔ¼öµéÀ» ¼±ÅÃÇÑ´Ù. ÇÔ¼ö Á¤ÀÇ´Â ·ÎÄÃ- static- ÀÏ ¼öµµ ÀÖÀ¸¹Ç·Î, µ¿ÀÏÇÑ ÇÔ¼ö À̸§ÀÌ ¿©·¯±ºµ¥¿¡¼­ »ç¿ëµÉ ¼öµµ ÀÖÀ½¿¡ ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ÇÁ·Î±×·¥ ³»¿¡¼­ ÇÔ¼ö¸íÀÌ À¯ÀÏÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â ƯÁ¤ ¼Ò½ºÈ­ÀÏ¿¡ ÀÖ´Â ÇÔ¼ö¸íÀ» ÁöĪÇϱâ À§Çؼ­ ´ÙÀ½¿¡ ¼³¸íÇÏ´Â ':'À» »ç¿ëÇÑ Ç¥±â¹ý(colon notation)À» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÇÔ¼ö¸í¿¡ "."°¡ Æ÷Ç﵃ ¼öµµ ÀÖÀ¸¹Ç·Î ÀÌ·± °æ¿ì¿¡´Â ÆÄÀϸíÀ¸·Î Çؼ®ÇÏÁö ¾Êµµ·Ï ÇÔ¼ö¸í ¾Õ¿¡  ':'À» Ãß°¡ÇÏ¿© ±¸ºÐÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿¹¸¦ µé¾î ":.mul"Àº ".mul"À̶ó´Â À̸§À» °¡Áø ÇÔ¼ö¸íÀ» ³ªÅ¸³½´Ù.
main.c:main
"main.c" ÆÄÀϳ»¿¡ ÀÖ´Â ÇÔ¼ö "main"À» ¼±ÅÃÇÑ´Ù.
main.c:134
"main.c" ÆÄÀÏÀÇ 134¹ø° ¶óÀÎÀ» ¼±ÅÃÇÑ´Ù.


óÀ½, ÀÌÀü, ´ÙÀ½, ¸¶Áö¸· ¼½¼Ç, ¸ñÂ÷