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


ÀÚÁÖ ¹®ÀǵǴ »çÇ×µé

Q. ÇÁ·Î±×·¥¿¡¼­ °¡Àå ¸¹ÀÌ ½ÇÇàµÇ´Â ¶óÀÎÀÌ ¾îµðÀÎÁö¸¦ ¾î¶»°Ô ¾Ë ¼ö ÀÖ³ª¿ä?
±âº» ºí·Ï Ä«¿îÆÃÀÌ °¡´ÉÇϵµ·Ï ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÑ ÈÄ ½ÇÇàÇÑ ÈÄ ´ÙÀ½°ú °°Àº ÆÄÀÌÇÁ ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.
gprof -l -C objfile | sort -k 3 -n -r
À§ÀÇ ¸í·É¾î¸¦ ÅëÇØ °¡Àå ºó¹øÇÏ°Ô ½ÇÇàµÇ´Â ÄÚµå ¶óÀÎÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª °¡Àå ¸¹ÀÌ ½ÇÇàµÇ´Â ÄÚµå ¶óÀÎÀ̶ó°í Çؼ­ ±× ºÎºÐ¿¡¼­ °¡Àå ¸¹Àº ½Ã°£À» ¼ÒºñµÈ´Ù°í´Â ÇÒ ¼ö ¾ø½À´Ï´Ù.
 
Q. ÇÁ·Î±×·¥ÀÇ ¾î¶² ¶óÀο¡¼­ ƯÁ¤ ÇÔ¼ö°¡ È£ÃâµÇ´ÂÁö ¾î¶»°Ô ¾Ë ¼ö ÀÖ½À´Ï±î?
gprof -l ¸¦ »ç¿ëÇÑ ÈÄ ±× ÇÔ¼ö¸¦ call graph¿¡¼­ ã¾Æ º¸½Ê½Ã¿ä. ƯÁ¤ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ºÎºÐÀÌ ÇÔ¼ö¿Í ¶óÀÎ ¹øÈ£º°·Î ³ª´µ¾î Ç¥½ÃµË´Ï´Ù.
 
Q. 1ÃÊ ¹Ì¸¸ÀÇ ½ÇÇà ½Ã°£À» °¡Áö´Â ÇÁ·Î±×·¥À» ¾î¶»°Ô ºÐ¼®ÇÏ¿©¾ß Çմϱî?
¾Æ·¡¿Í °¥Àº ½© ½ºÅ©¸³Æ®¸¦ ¼öÇàÇÏ½Ã¸é µË´Ï´Ù.
for i in `seq 1 100`; do
  fastprog
  mv gmon.out gmon.out.$i
done

gprof -s fastprog gmon.out.*

gprof fastprog gmon.sum
ºÐ¼®ÇÏ°íÀÚÇÏ´Â ÇÁ·Î±×·¥ÀÌ ¿Ïº®ÇÏ°Ô deterministicÇÏ´Ù¸é, ¸ðµç È£Ãâ Ƚ¼ö´Â 100ÀÇ ¹è¼ö°¡ µÉ°ÍÀÔ´Ï´Ù. Áï, ÇѹøÀÇ ÇÁ·Î±×·¥ ½ÇÇà¿¡ ´Ü Çѹø È£ÃâµÇ´Â Ç×¼ö´Â È£Ãâ Ƚ¼ö°¡ 100ÀÌ µË´Ï´Ù.

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