ÇÁ·Î±×·¥ ¼Ò½º¸¦ ÇÁ·ÎÆÄÀϸµÀÌ °¡´ÉÇϵµ·Ï ÇÁ·ÎÆÄÀϸµ °ü·Ã ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÄÄÆÄÀÏÇÑ ÈÄ¿¡´Â gprof
°¡ ÇÊ¿ä·Î ÇÏ´Â
Á¤º¸¸¦ »ý¼ºÇϱâ À§Çؼ ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿©¾ß ÇÑ´Ù. ÇÁ·Î±×·¥ ½ÇÇàÀº
º¸Åë ¶§¿Í °°ÀÌ ÀÎÀÚ(argument)¿Í ÀÔ·Â µ¥ÀÌÅÍ ÆÄÀÏ À̸§µîÀ» »ç¿ëÇÏ¿© ½ÇÇàÇÏ¸é µÇ°í, ½ÇÇàµÈ ÇÁ·Î±×·¥Àº
ÇÁ·ÎÆÄÀϸµ ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀº °æ¿ì¿Í µ¿ÀÏÇÑ ¼öÇà °á°ú¸¦ ³»¸é¼ Á¤»óÀûÀ¸·Î ¼öÇàÇÏ¿©¾ß ÇÑ´Ù. ±×·¯³ª ÇÁ·ÎÆÄÀϸµ
¿É¼ÇÀ» »ç¿ëÇÏ¿© ¸¸µé¾îÁø ½ÇÇà ÆÄÀÏÀº ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅ͸¦ ¼öÁýÇÏ°í ±â·ÏÇÏ´Â ÀÛ¾÷ÀÌ
Æ÷ÇԵǾîÀÖÀ¸¹Ç·Î ÇÁ·ÎÆÄÀϸµ ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀº ½ÇÇàÈÀϺ¸´Ù ´Ù¼Ò ´À¸®°Ô ½ÇÇàµÈ´Ù.
ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â ¹æ½Ä Áï, ÇÁ·Î±×·¥¿¡ ÁÖ¾îÁö´Â ÀÎÀÚ¿Í ÀÔ·Â µ¥ÀÌŸ ÆÄÀÏ¿¡ µû¶ó¼ ÇÁ·ÎÆÄÀÏ Á¤º¸¿¡ Å« Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅʹ ƯÁ¤ ÀԷ¿¡ ´ëÇÏ¿© ½ÇÇà½Ã¿¡ È°¼ºÈµÇ´Â ÄÚµå ¿µ¿ªÀÇ ÇÁ·ÎÆÄÀÏ Á¤º¸¸¦ Æ÷ÇÔÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¾î ÇÁ·Î±×·¥¿¡ ÁÖ¾îÁö´Â ù ¹ø° ¸í·ÉÀÌ ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â quit¸í·ÉÀ̶ó¸é, ÇÁ·ÎÆÄÀϵ¥ÀÌŸ¿¡´Â ÇÁ·Î±×·¥ ÃʱâÈ¿Í cleanup¿¡¼ »ç¿ëµÈ ½Ã°£¿Ü¿¡´Â º°´Ù¸¥ Á¤º¸°¡ ¾øÀ» °ÍÀÌ´Ù.
ÇÁ·ÎÆÄÀϸµ ¿É¼ÇÀ¸·Î ÄÄÆÄÀÏµÈ ½ÇÇà ÇÁ·Î±×·¥Àº Á¾·á Á÷Àü¿¡ `gmon.out'À̶ó´Â À̸§À» °¡Áø ÆÄÀÏ¿¡ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅ͸¦ ±â·ÏÇÑ´Ù. `gmon.out'ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é ÀÌ ÆÄÀÏÀÇ ³»¿ëÀ» µ¤¾î ¾´´Ù. ÇöÀç ¹öÁ¯¿¡¼´Â ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍÀÇ ÆÄÀϸíÀ» ´Ù¸¥ À̸§À» »ç¿ëÇÏ¿© ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅ͸¦ ±â·ÏÇϵµ·Ï ÇÏ´Â ¹æ¹ýÀÌ ¾øÀ¸¹Ç·Î ÀÌÀüÀÇ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅ͸¦ º¸Á¸ÇÏ·Á¸é `gmon.out'ÆÄÀÏÀÇ À̸§À» º¯°æÇÏ¿© ÀúÀåÇÏ¿©¾ß ÇÑ´Ù.
`gmon.out' ÆÄÀÏ¿¡ ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ°¡ ¿Ã¹Ù¸£°Ô ±â·ÏµÇ±â À§Çؼ´Â ÀÛ¼ºµÈ ÇÁ·Î±×·¥ÀÌ
main()
¿¡¼ ¸®Åϵǰųª, exit()
ÇÔ¼ö È£ÃâÀ» ÅëÇÏ¿© Á¤»óÀûÀ¸·Î Á¾·áµÇ¾î¾ß ÇÑ´Ù.
Àú¼öÁØ ÇÔ¼öÀÎ _exit()
¸¦ »ç¿ëÇÏ¿© Á¾·áµÇ´Â °æ¿ì³ª, 󸮵ÇÁö ¾Ê´Â ½Ã±×³Î¿¡ ÀÇÇØ
ºñÁ¤»óÀûÀ¸·Î Á¾·áµÇ´Â °æ¿ì¿¡´Â ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ°¡ `gmon.out' ÆÄÀÏ¿¡ ¿Ã¹Ù¸£°Ô ±â·ÏµÇÁö
¾Ê´Â´Ù.
`gmon.out' ÆÄÀÏÀº ½ÇÇà ÇÁ·Î±×·¥ÀÌ Á¾·áÇÏ´Â ½ÃÁ¡¿¡¼ÀÇ ÇöÀç ÀÛ¾÷ µð·ºÅ丮(current
working directory)¿¡ ±â·ÏµÈ´Ù. Áï, ÇÁ·Î±×·¥³»¿¡¼ chdir()
ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °æ¿ì,
`gmon.out' ÆÄÀÏÀº ÇÁ·Î±×·¥ÀÌ ¸¶Áö¸· chdir()
È£Ãâ¿¡ µû¶ó
º¯°æµÈ ÇöÀç ÀÛ¾÷ µð·ºÅ丮¿¡ ±â·ÏµÈ´Ù.
¸¸ÀÏ ÇöÀç ÀÛ¾÷µð·ºÅ丮¿¡ ´ëÇÑ ±â·Ï ±ÇÇÑ(write permission)ÀÌ ¾ø´Â °æ¿ì¿¡ `gmon.out' ÆÄÀÏÀº ÀÛ¼ºµÇÁö
¾Ê°í ¿¡·¯ ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù.
±¸ ¹öÀüÀÇ GNU ÇÁ·ÎÆÄÀϸµ ¶óÀ̺귯¸®¿¡¼´Â `bb.out'¶ó´Â À̸§À» °¡Áø
ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì, ÀÌ ÆÄÀÏ¿¡´Â ±âº» ºí·ÏÀÇ ½ÇÇà
Ƚ¼ö¿¡ ´ëÇÑ ¸®½ºÆà Á¤º¸°¡ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â ÇüÅ·ΠÆ÷ÇԵǾî ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ
»ç¶÷ÀÌ Æǵ¶ÇÒ ¼ö ÀÖ´Â ÇüÅÂÀÇ `bb.out'ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù´Â °ÍÀº ±âº» ºí·ÏÀÇ
Ä«¿îÆ®°¡ `gmon.out' ÆÄÀÏ¿¡ ±â·ÏµÇÁö ¾Ê¾ÒÀ½À» ÀǹÌÇÑ´Ù. gprof
¼Ò½º ¹èÆ÷ÆÇ¿¡ Æ÷ÇԵǾî ÀÖ´Â perl scriptÀÎ bbconv.pl
¸¦ »ç¿ëÇϸé
`bb.out' ÆÄÀÏÀ» gprof
°¡ ÀоîµéÀÏ ¼ö ÀÖ´Â Æ÷¸ËÀ¸·Î º¯È¯ÇÒ
¼ö ÀÖ´Ù.