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


ÇÁ·ÎÆÄÀÏ µ¥ÀÌÅÍ »ý¼ºÀ» À§ÇÑ ÇÁ·Î±×·¥ ½ÇÇà

ÇÁ·Î±×·¥ ¼Ò½º¸¦ ÇÁ·ÎÆÄÀϸµÀÌ °¡´ÉÇϵµ·Ï ÇÁ·ÎÆÄÀϸµ °ü·Ã ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÄÄÆÄÀÏÇÑ ÈÄ¿¡´Â 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°¡ ÀоîµéÀÏ ¼ö ÀÖ´Â Æ÷¸ËÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù.


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