ÇÁ·Î±×·¥Àº ÀڷᱸÁ¶¿Í ¾Ë°í¸®ÁòÀ¸·Î ±¸¼ºµÇ´Âµ¥ ÀÌ µÑÀº ¼·Î ±ä¹ÐÇÑ ¿¬°üÀ» ¸Î°í ÀÖÀ¸¸ç ¶ÇÇÑ »óÈ£ º¸¿ÏÀûÀÌ´Ù. µ¿ÀÏÇÑ ¼º´ÉÀÇ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù°í ÇßÀ» ¶§ ÀڷᱸÁ¶°¡ °£´ÜÇÏ¸é ¾Ë°í¸®ÁòÀÌ º¹ÀâÇØÁ®¾ß ÇÏ°í ¹Ý´ë·Î ÀڷᱸÁ¶°¡ º¹ÀâÇÏ¸é ¾Ë°í¸®ÁòÀÌ »ó´ëÀûÀ¸·Î °£´ÜÇØÁ®µµ µÈ´Ù. ¸ðµç ÇÁ·Î±×·¥Àº Ç¥ÇöÇÏ°íÀÚ ÇÏ´Â Á¤º¸¸¦ ¾î¶² ½ÄÀ¸·Î ÀúÀåÇÏ°í °ü¸®ÇÒ °ÍÀÎÁö ÀڷᱸÁ¶¸¦ ¸ÕÀú ¼³°èÇÑ ÈÄ ÀڷᱸÁ¶¿¡ ¸Â°Ô ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÑ´Ù.
ÆíÁý±â°¡ ó¸®ÇÏ´Â °¡Àå Áß¿äÇÑ µ¥ÀÌÅÍ´Â ¿ª½Ã ÆíÁý ´ë»óÀÎ ÅؽºÆ®ÀÌ´Ù. ÅؽºÆ®¸¦ ¾î¶² ½ÄÀ¸·Î ÀúÀåÇÏ°í °ü¸®ÇÒ °ÍÀΰ¡, Áï ¹öÆÛÀÇ ¼³°è ¹æ½ÄÀ» ÃÖ¿ì¼±ÀûÀ¸·Î °áÁ¤ÇØ¾ß ÇÑ´Ù. ¹öÆÛ ¼³°è´Â ÆíÁý±â Á¦ÀÛÀÇ Ã¹ ´ÜÃß¿¡ ÇØ´çÇϴµ¥ Àß ¼³°èÇسõÀ¸¸é ÄÚµå ÀÛ¼ºµµ ½±°í ±â´ÉÀ» È®ÀåÇϱ⿡µµ À¯¸®ÇÏ´Ù. ¹Ý¸é À߸ø ¼³°èÇϸé Áß°£¿¡ °íÄ¡±â ¾î·Á¿ì¸ç ³¶Æи¦ ´çÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î óÀ½ºÎÅÍ ½ÅÁßÇÏ°Ô ¼±ÅÃÇØ¾ß ÇÑ´Ù.
±×·¡¼ ¿ì¼± ÆíÁý±â¸¦ º»°ÝÀûÀ¸·Î Á¦ÀÛÇϱâ Àü¿¡ ¹öÆÛ¸¦ ¾î¶² ½ÄÀ¸·Î ¼³°èÇÏ´Â °ÍÀÌ ÁÁÀºÁöºÎÅÍ ¸é¹ÐÇÏ°Ô °ËÅäÇغ¸µµ·Ï ÇÏÀÚ. ÅؽºÆ® µ¥ÀÌÅ͸¦ Ç¥ÇöÇϱâ À§ÇÑ ¹æ¹ýÀº Å©°Ô µÎ °¡Áö ¹æ½ÄÀ¸·Î ³ª´©¾îÁö´Âµ¥ ù ¹ø°´Â µð½ºÅ© ±â¹ÝÀÌ°í µÎ ¹ø°´Â ¸Þ¸ð¸® ±â¹ÝÀÌ´Ù. µð½ºÅ© ±â¹ÝÀÇ ¹öÆÛ¶õ ÆíÁýÆÄÀÏÀ» ÀüºÎ Àоî¿ÀÁö ¾Ê°í ´çÀå ÇÊ¿äÇÑ ºÎºÐ¸¸ Àоî¿À´Â ¹æ½ÄÀε¥ °ú°Å ¸ÞÀÎ ¸Þ¸ð¸®°¡ Å©Áö ¾Ê¾ÒÀ» ¶§ ÁÖ·Î »ç¿ëÇÑ ¹æ½ÄÀÌ´Ù. ¸ÞÀÎ ¸Þ¸ð¸®°¡ 4MBÀÎ »óȲ¿¡¼ 1MBÂ¥¸® ÆÄÀÏÀ» ¸Þ¸ð¸®·Î ÀÐ¾î µéÀ̸é 25%ÀÇ ¸Þ¸ð¸®¸¦ Á¡À¯ÇÏ´Â ¼ÀÀÌ µÇ±â ¶§¹®¿¡ ±×·² ¼ö°¡ ¾ø¾ú´Ù.
¿äÁòÀº ¸ÞÀÎ ¸Þ¸ð¸®°¡ ³Ë³ËÇÑ µ¥´Ù°¡ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÏ¸é ¿î¿µÃ¼Á¦°¡ ¾Ë¾Æ¼ µð½ºÅ©¿¡ °¡»ó ¸Þ¸ð¸®¸¦ Àâ¾ÆÁֱ⠶§¹®¿¡ ±»ÀÌ ºñÈ¿À²ÀûÀÎ µð½ºÅ© ±â¹Ý ¹æ½ÄÀ» »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø¾îÁ³´Ù. °Ô´Ù°¡ ÆÄÀÏÀÌ Á¤¸»·Î Å©´Ù¸é ÆÄÀÏ ¸ÅÇÎ °´Ã¼¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ¸¹Ç·Î µð½ºÅ© ±â¹ÝÀº ¾Æ¿¹ »ý°¢ÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ¸Þ¸ð¸®¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ¹öÆÛ´Â ´Ù½Ã µÎ °¡Áö ¹æ½ÄÀ¸·Î ³ª´©¾îÁø´Ù.
Àüü ÅؽºÆ®¸¦ ÇϳªÀÇ ¹®ÀÚ¿ ¹öÆÛ·Î °ü¸®ÇÑ´Ù. ¸¸¾à 4ÁÙ·Î ±¸¼ºµÈ ¹®¼¸¦ Ç¥ÇöÇÑ´Ù¸é ¸Þ¸ð¸®»ó¿¡ ´ÙÀ½°ú °°ÀÌ ±â·ÏµÉ °ÍÀÌ´Ù.
¹öÆÛÀÇ ½ÃÀÛÀ§Ä¡¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍ º¯¼ö buf Çϳª¸¸ ¼±¾ðÇÏ°í ÀÌ ¹öÆÛ¿¡ ¹®¼¸¦ Åë°·Î ÀúÀåÇصξú´Ù. ¹®¼¸¦ Ç¥ÇöÇϴµ¥ ´ÜÀÏ ¹öÆÛ Çϳª¸¸ ÀÖÀ¸¸é µÈ´Ù. ÀÌ ¹æ¹ýÀº ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù.
¨ç º¸´Ù½ÃÇÇ ±Ø´ÜÀûÀ¸·Î ´Ü¼øÇÑ ±¸Á¶¸¦ °¡Áö°í Àֱ⠶§¹®¿¡ °ü¸®ÇÒ ÇÊ¿ä°¡ °ÅÀÇ ¾ø´Ù. ¹öÆÛÀÇ ½ÃÀÛÀ§Ä¡¿Í ¿øÇÏ´Â ¿ÀÇÁ¼Â¸¸ ¾Ë¸é ¹®¼¸¦ ÀÚÀ¯·Ó°Ô Á¶ÀÛÇÒ ¼ö ÀÖ´Ù.
¨è ÀÌ·± ÀÏÂ÷¿øÀûÀÎ ±¸Á¶´Â ÅؽºÆ® ÆÄÀÏÀÇ µð½ºÅ© À̹ÌÁö¿Í ¿ÏÀüÈ÷ ÀÏÄ¡ÇÑ´Ù. ±×·¡¼ ÆÄÀÏ ÀÔÃâ·ÂÀÌ °£´ÜÇϸç Àд Áï½Ã ¹®¼¸¦ º¸¿© ÁÙ ¼ö ÀÖ°í ÀúÀåÇÒ ¶§µµ buf ¹è¿À» ÆÄÀÏ·Î ¾²±â¸¸ ÇÏ¸é µÈ´Ù. ¶ÇÇÑ ÀÌ ±¸Á¶´Â Win32ÀÇ ¸Þ¸ð¸® ¸Ê ÆÄÀÏ°úµµ ȣȯµÇ¹Ç·Î ´ë¿ë·® ÆÄÀÏÀ» ¸Þ¸ð¸® ¸Ê ÆÄÀÏ·Î ¸ÅÇÎÇÑ ÈÄ »ç¿ëÇÏ¸é °ú´ÙÇÑ ¸Þ¸ð¸® ¼Ò¸ð¾øÀÌ Å« ¹®¼¸¦ ÀÐÀ» ¼ö ÀÖ´Ù.
¨é ¹®¼ ÀÚü¸¦ ±â¾ïÇÏ´Â ¹öÆÛ ¿ÜÀÇ Ãß°¡ Á¤º¸°¡ ÇÊ¿äÄ¡ ¾ÊÀ¸¸ç ¹®¼ÀÇ ¿ë·®°ú °ÅÀÇ µ¿ÀÏÇÑ Å©±âÀÇ ¹öÆÛ¸¦ »ç¿ëÇϹǷΠ¸Þ¸ð¸®ÀÇ ³¶ºñ°¡ ¾ø´Ù.
ÇÏÁö¸¸ ¾Õ¿¡¼µµ ¸»ÇßµíÀÌ ÀڷᱸÁ¶°¡ ´Ü¼øÇÏ¸é ¾Ë°í¸®ÁòÀÌ º¹ÀâÇØÁ®¾ß ÇÑ´Ù. ´ÜÀÏ ¹öÆÛ ¹æ½ÄÀº ±× ´Ü¼øÇÔÀ¸·Î ÀÎÇØ ´ÙÀ½°ú °°Àº ´ÜÁ¡À» °¡Áø´Ù.
¨ç ƯÁ¤ À§Ä¡¸¦ ã´Âµ¥ ½Ã°£ÀÌ °É¸°´Ù. À§ ±×¸²¿¡¼ ³× ¹ø° ÁÙ ¡®°¡´Â ³ª±×³×¡¯¸¦ ãÀ¸·Á¸é ¹öÆÛÀÇ Ã³À½ºÎÅÍ Àо¸é¼ °³Ç๮ÀÚ ¼ÂÀ» Áö³ ÈÄÀÇ À§Ä¡¸¦ ã¾Æ¾ß ÇÑ´Ù. ¹®¼°¡ Å©¸é Ŭ¼ö·Ï, ã´Â ÁÙÀÌ µÚÂÊ¿¡ ÀÖÀ»¼ö·Ï °Ë»ö ¼Óµµ´Â ´õ¿í ´À·ÁÁú °ÍÀÌ´Ù. ±×·¯³ª ÀÌ ´ÜÁ¡Àº º°µµÀÇ À妽º¸¦ À¯ÁöÇÔÀ¸·Î½á ÇØ°áÇÒ ¼ö ÀÖ´Ù.
¨è »ðÀÔ°ú »èÁ¦°¡ ´À¸®´Ù. ¹®¼ÀÇ Æ¯Á¤ À§Ä¡¿¡ ¹®ÀÚ¸¦ »ðÀÔÇÒ °æ¿ì »ðÀԵǴ À§Ä¡ ÀÌÈÄÀÇ ¹®ÀÚ´Â ¸ðµÎ µÚÂÊÀ¸·Î À̵¿µÇ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î 1M Å©±âÀÇ ¹®¼°¡ ÀÖ°í ÀÌ ¹®¼ Áß°£¿¡ ±ÛÀÚ Çϳª¸¦ »ðÀÔÇÑ´Ù°í Çغ¸ÀÚ.
ÀÌ ±ÛÀÚ°¡ »ðÀ﵃ °ø°£À» Áß°£¿¡ ¸¸µé¾î¾ß ÇϹǷΠµÚÂÊÀÇ ¹®ÀÚµéÀÌ »ðÀ﵃ ±ÛÀÚ ±æÀ̸¸Å À̵¿µÇ¾î¾ß ÇÑ´Ù. »èÁ¦ÇÒ ¶§´Â ¹Ý´ë·Î µÚÂÊ ¹®ÀÚµéÀ» ¾ÕÂÊÀ¸·Î º¹»çÇØ¾ß ÇÑ´Ù. ¹®¼°¡ ª´Ù¸é ±×¸® Å« ¹®Á¦°¡ ¾Æ´Ï°ÚÁö¸¸ ¹®¼°¡ ±æ¾îÁö¸é ±ÛÀÚ Çϳª »ðÀÔÇÒ ¶§¸¶´Ù ¾öû³ ¸Þ¸ð¸® À̵¿ÀÌ ÇÊ¿äÇϹǷΠȿÀ²ÀûÀÌÁö ¸øÇÏ´Ù. ¹öÆÛ Çϳª°¡ ¹®¼ Àüü¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î ÀÌ ±¸Á¶¿¡¼´Â ¾î¿ ¼ö ¾ø´Â ¹®Á¦´Ù. ÇØ°á ¹æ¹ýÀÌ ÀüÇô ¾ø´Ù.
ÀÌ ¹æ¹ýÀº ¹®¼ Àüü¸¦ ÇϳªÀÇ ¹öÆÛ¿¡ ÀúÀåÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÇÑ ÁÙ´ç ÇϳªÀÇ ¹öÆÛ¿¡ ÀúÀåÇÏ´Â °ÍÀÌ´Ù. Áï, ¹®¼ Àüü¸¦ ÁÙÀÇ ¹è¿·Î °£ÁÖÇÏ°í °¢ ¹öÆÛ¿¡ ÇÑ ÁÙ¾¿ ÅؽºÆ®¸¦ ÀúÀåÇÑ´Ù. 4ÁÙÂ¥¸® ¹®¼¸¦ ¿¹·Î µé¸é ´ÙÀ½°ú °°ÀÌ ¸Þ¸ð¸®¿¡ ÀÔüÀûÀ¸·Î Ç¥ÇöµÉ °ÍÀÌ´Ù. ¿©±â¼ ÁÙÀ̶ó´Â ¿ë¾î´Â °³ÇàÄÚµå·Î ¹°¸®ÀûÀ¸·Î ºÐ¸®µÇ¾î ÀÖ´Â ¹®´ÜÀÇ °³³äÀÌ´Ù.
ÇüÅÂÀûÀ¸·Î ¹®¼´Â °¢ ÁÙÀ» °¡¸®Å°´Â Æ÷ÀÎÅÍ ¹è¿·Î Ç¥ÇöµÈ´Ù. ¶Ç´Â Á» ´õ »ðÀÔ°ú »èÁ¦¿¡ À¯¿¬ÇÔÀ» ÁÖ°íÀÚ ÇÑ´Ù¸é ¿¬°á ¸®½ºÆ®(Linked List)·Î ±¸ÇöÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¹æ¹ýÀº ´ÜÀÏ ¹öÆÛ¿¡ ºñÇØ Á» ´õ ¹ßÀüµÈ ÇüÅÂÀÌ¸ç ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù.
¨ç °Ë»öÀÌ ¹«Ã´ ºü¸£´Ù. n¹ø° ÁÙÀ» ã°í ½ÍÀ¸¸é buf[n]À» ÀÐÀ¸¸é µÇ´Âµ¥ ¹è¿ÀÇ Ã·ÀÚ ¿¬»êÀº °í¼ÓÀ¸·Î 󸮵DZ⠶§¹®¿¡ °ÅÀÇ ½Ã°£ÀÌ µéÁö ¾Ê´Â´Ù. ¹®¼ÀÇ Å©±â°¡ ¾Æ¹«¸® Ä¿µµ °Ë»ö ¼Óµµ°¡ ´À·ÁÁö´Â ¹ýÀº ¾ø´Ù.
¨è »ðÀÔ »èÁ¦µµ ºñ±³ÇÒ ¼ö ¾øÀ» ¸¸Å ºü¸£¸ç ¹®¼ Å©±â¿¡µµ °ÅÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. ¹®¼°¡ ¹é¸¸ ÁÙÀ̵ç õ¸¸ ÁÙÀÌµç ±× ÁÙ¿¡ »ðÀÔÇÏ´Â ±ÛÀÚ´Â ±× ÁÙÀÇ ¹öÆÛ¿¡¸¸ ¿µÇâÀ» ¹ÌÄ¡±â ¶§¹®¿¡ ´ë¿ë·®ÀÇ ¸Þ¸ð¸® À̵¿ÀÌ ÇÊ¿ä¾ø´Ù. ÇÏÁö¸¸ ¿©·¯ ÁÙÀ» ÇѲ¨¹ø¿¡ »ðÀÔ, »èÁ¦ÇÒ ¶§´Â Æ÷ÀÎÅÍ ¹è¿À» Á¶ÀÛÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î 6¹ø ÁÙÀ» Åë°·Î »èÁ¦Çϸé 7¹ø ÁÙÀÌ 6¹ø ÁÙÀÌ µÇ¾ß ÇÏ°í ±× ÀÌÈÄÀÇ Áٵ鵵 ÁÙÁÙÀÌ ÇÑ Ä¾¿ À§·Î ¿Ã¶ó¿Í¾ß ÇÑ´Ù. ±×·¯³ª Æ÷ÀÎÅÍ ¹è¿ Á¶ÀÛÀº ÅؽºÆ®¸¦ ÀüÇô °Çµå¸®Áö ¾ÊÀ¸¹Ç·Î ¼Óµµ»ó ºÒ¸®ÇÑ Á¡ÀÌ º°·Î ¾øÀ¸¸ç ¿¬°á ¸®½ºÆ®¸¦ »ç¿ëÇÒ °æ¿ì ¹è¿ Á¶ÀÛµµ ÇÊ¿äÄ¡ ¾Ê´Ù.
¨é °¢ ÁÙ¿¡ ºÏ¸¶Å©³ª ÁÙ¹øÈ£ µîÀÇ ºÎ°¡ Á¤º¸¸¦ °°ÀÌ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ÇÑ ÁÙ¿¡ ´ëÇÑ Á¤º¸¸¦ ±¸Á¶Ã¼·Î ÀÛ¼ºÇÏ°í ÀÌ ±¸Á¶Ã¼¿¡ ¿øÇÏ´Â Á¤º¸¸¦ ¸â¹ö·Î Æ÷ÇÔ½ÃÅ°¸é µÈ´Ù. ÀÌ·¸°Ô µÇ¸é ¹®¼´Â Æ÷ÀÎÅÍ ¹è¿ÀÌ ¾Æ´Ï¶ó ±¸Á¶Ã¼ ¹è¿ÀÌ µÈ´Ù.
º¸´Ù½ÃÇÇ ´ÜÀÏ ¹öÆÛ¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ºñÇؼ ¿©·¯ ¸ð·Î ÀåÁ¡ÀÌ ¸¹´Ù. ÇÏÁö¸¸ ±¸Á¶°¡ ¾à°£ º¹ÀâÇØÁ³±â ¶§¹®¿¡ ÀÌ·Î ÀÎÇÑ ´ÜÁ¡µµ ÀÖ´Ù.
¨ç ´ÜÀÏ ¹öÆÛ¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ºñÇØ ¸Þ¸ð¸® ¼Ò¸ð°¡ ¸¹´Ù. °¢ ÁÙÀÇ ÅؽºÆ® ¹öÆÛ´Â Ãß°¡µÉ ¹®ÀÚ¸¦ °í·ÁÇÏ¿© ¾à°£ÀÇ ¿©ºÐÀ» ÁÖ¾î ¸Þ¸ð¸®¸¦ ÇÒ´çÇØ¾ß ÇϹǷΠ¹Ì»ç¿ë ¸Þ¸ð¸® ¾çÀÌ ¸¹°í ¶Ç »ðÀÔ »èÁ¦°¡ ÀæÀ» ½Ã¿¡ ¸Þ¸ð¸® ÀçÇÒ´çÀÌ ºó¹øÇÏ°Ô ÀÌ·ç¾îÁö¹Ç·Î ¸Þ¸ð¸®ÀÇ ´ÜÆíÈ°¡ ½ÉÇØÁø´Ù. º¹ÀâÇÑ ±¸Á¶ÀÇ ´ë°¡·Î ÀÎÇØ ¸Þ¸ð¸®´Â ¸¹ÀÌ ¼Ò¸ðÇÒ ¼ö¹Û¿¡ ¾ø´Ù.
¨è ÅؽºÆ® ÆÄÀÏÀÇ ±¸Á¶¿Í´Â ´Ù¸¥ ÇüŸ¦ °¡Áö±â ¶§¹®¿¡ ÆÄÀÏ ÀÔÃâ·ÂÀÌ ¹ø°Å·Ó´Ù. ÆÄÀÏÀ» ÀÐÀº ÈÄ È¸é¿¡ Ãâ·ÂÇÏ·Á¸é ¸ÕÀú °¢ ÁÙÀ» ºÐ¼®Çؼ ÁÙ ¹öÆÛ¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ÅؽºÆ®¸¦ º¹»çÇÏ´Â °úÁ¤À» °ÅÃÄ¾ß ÇÑ´Ù. ±×·¡¼ ÆÄÀÏÀ» ÀÐÀº ÈÄ Ãâ·ÂµÉ ¶§±îÁö ¾à°£ÀÇ ½Ã°£ÀÌ °É¸®´Âµ¥ ÆÄÀÏÀÌ Å¬¼ö·Ï ÀÌ ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù. ÀúÀåÇÒ ¶§µµ Èð¾îÁ® ÀÖ´Â ÁÙµéÀ» ¸ð¾Æ ÇÑ ÆÄÀÏ¿¡ ±â·ÏÇØ¾ß ÇϹǷΠ¿ª½Ã ´À¸®´Ù.
ÀÌ ´ÜÁ¡ÀÌ º°·Î Áß¿äÇÏÁö ¾Ê´Ù°í »ý°¢ÇÒ ¼öµµ ÀÖ°ÚÁö¸¸ ÆíÁý±â¸¦ ÅؽºÆ® ºä¾î·Î »ç¿ëÇÏ´Â »ç¶÷¿¡°Ô´Â Ä¡¸íÀûÀÎ ´ÜÁ¡ÀÌ´Ù. 10MB Á¤µµÀÇ ÅؽºÆ® ÆÄÀÏÀ» ÀаíÀÚ Çϴµ¥ ¼ö½Ê Ãʸ¦ ±â´Ù·Á¾ß ÇÑ´Ù¸é ´©°¡ ÁÁ¾ÆÇϰڴ°¡? ½ÇÁ¦ ¹ßÇ¥µÇ¾î ÀÖ´Â »ó¿ë ÆíÁý±âµéµµ ÀÌ ¹æ¹ýÀ¸·Î ÀÛ¼ºµÈ °ÍÀº ÆÄÀÏÀ» óÀ½ ÀÐ¾î µéÀÌ´Â ¼Óµµ°¡ ±²ÀåÈ÷ ´À¸®°í ¹ÝÀÀ¼ºÀÌ ÁÁÁö ¾Ê´Ù. ¹°·Ð ÀÏ´Ü ÀÐÀº ÈÄ¿¡´Â ºü¸¥ ¼Óµµ·Î ÆíÁýÇÒ ¼ö ÀÖ´Ù.
¨é ±¸Á¶°¡ º¹ÀâÇϱ⠶§¹®¿¡ °ü¸®°¡ ´Ù¼Ò ±ÍÂúÀº ¸éÀÌ ÀÖ´Ù. ¹®¼¸¦ ÆíÁýÇϰųª À̵¿, º¹»ç, ºÙ¿©³Ö±â¸¦ ÇÒ ¶§, ƯÈ÷ ÁÙ³¢¸®ÀÇ ¹®ÀÚ¿ À̵¿½Ã ÀÌ°ÍÀú°Í ÇØ¾ß ÇÒ Ã³¸®°¡ ¸¹´Ù. µû¶ó¼ ¹ö±×ÀÇ °¡´É¼ºµµ ÈξÀ ´õ ³ô°í °³¹ßÁß¿¡ µð¹ö±ëÀ» Çϱ⵵ ¹«Ã´ ¹ø°Å·Ó´Ù. ÀÌ´Â °ð °³¹ß ºñ¿ëÀÌ ¸¹ÀÌ µç´Ù´Â ¾ê±â¿Íµµ °°´Ù.
¹öÆÛ¸¦ °ü¸®ÇÏ´Â µÎ °¡Áö ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¸¾Ò´Âµ¥ ¹°·Ð ÀÌ µÎ ¹æ¹ý ¿Ü¿¡µµ ÆÄÀÏ ¸ÅÇÎ °´Ã¼¸¦ »ç¿ëÇѴٰųª ÇÏ´Â Á¦ 3ÀÇ ¹æ¹ýµéÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ´Ù¸¥ ¹æ¹ýµéµµ ÀÌ µÎ ¹æ¹ýÀÇ º¯ÇüÀ̰ųª Á¶ÇÕ Á¤µµ¿¡ ºÒ°úÇÒ °ÍÀÌ´Ù.
ÀÚ, ±×·³ ÀÌÁ¦ ÆíÁý±â¸¦ ¸¸µé±â Àü¿¡ ¹öÆÛÀÇ ±¸Á¶¸¦ ¸ÕÀú ¼±ÅÃÇØ¾ß ÇÑ´Ù. À̶§ °¡Àå ¿ì¼±ÀûÀ¸·Î °í·ÁµÇ¾î¾ß ÇÒ »çÇ×Àº »ðÀÔ, »èÁ¦ ¼ÓµµÀÌ´Ù. ¸Þ¸ð¸® ¼Ò¸ð, °Ë»ö, º¯È¯, °ü¸® µîÀÇ Ã³¸®´Â ³»ºÎÀûÀ¸·Î ÀϾ´Â ÀÏÀ̹ǷΠ»ç¿ëÀÚ°¡ ±× Â÷À̸¦ ´À³¢±â ¾î·Á¿îµ¥ ¹ÝÇØ »ðÀÔ, »èÁ¦´Â »ç¿ëÀÚÀÇ Å°º¸µå Á¶ÀÛ¿¡ ÀÇÇØ ÀϾ´Â ÀÏÀ̹ǷΠ½±°Ô ü°¨µÈ´Ù. ¹®¼°¡ Á¶±Ý Ä¿Á³´Ù°í Çؼ ŸÀÌÇÁÄ¡´Â ¼Óµµ¸¦ ¸ø µû¶ó¿Â´Ù¸é ±× ÆíÁý±â ´©°¡ ¾µ·Á°í Çϰڴ°¡?
¾Õ¿¡¼ »ìÆ캻 ¹Ù¿¡ ÀÇÇÏ¸é ´ÜÀÏ ¹öÆÛ ¹æ¹ýÀÌ ÁÙ´ÜÀ§ ¹öÆÛ ¹æ¹ýº¸´Ù »ðÀÔ, »èÁ¦¿¡´Â ºÒ¸®ÇÏ´Ù. ±×·¸´Ù¸é °ú¿¬ ¾ó¸¶³ª ºÒ¸®ÇÑÁö °£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î Å×½ºÆ®¸¦ Çغ¸µµ·Ï ÇÏÀÚ. MemTest¶ó´Â À̸§À¸·Î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ´ÙÀ½ ¼Ò½º¸¦ ÀÔ·ÂÇغ¸ÀÚ.
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass=TEXT("MemTest");
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
hWndMain=hWnd;
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
}
#include <stdio.h>
void MemTest()
{
LARGE_INTEGER st,ed,freq;
double gap;
TCHAR Mes[256];
TCHAR *buf;
int i;
buf=(TCHAR *)malloc(1048576*10);
QueryPerformanceCounter(&st);
for (i=0;i<10;i++) {
memmove(buf,buf+1,1048576*10-1);
}
QueryPerformanceCounter(&ed);
QueryPerformanceFrequency(&freq);
gap=((double)(ed.QuadPart-st.QuadPart))/((double)freq.QuadPart);
sprintf(Mes, "10MB ¿¹ø À̵¿ Å×½ºÆ®¿¡ %.4fÃÊ °æ°úÇß½À´Ï´Ù.",gap);
MessageBox(hWndMain,Mes,"¼Óµµ ÃøÁ¤ °á°ú",MB_OK);
free(buf);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
char Mes[]="¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£½Ê½Ã¿À";
switch(iMessage) {
case WM_LBUTTONDOWN:
MemTest();
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
TextOut(hdc,10,10,Mes,lstrlen(Mes));
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯Çϸé MemTest ÇÔ¼ö¸¦ È£ÃâÇϴµ¥ ÀÌ ÇÔ¼ö´Â 10MBÀÇ ¸Þ¸ð¸®¸¦ À̵¿½ÃÅ°´Â µ¿ÀÛÀ» 10¹ø ¼öÇàÇÏ°í °æ°ú ½Ã°£À» Ãâ·ÂÇÑ´Ù. °á±¹ 100MBÀÇ ¸Þ¸ð¸®¸¦ À̵¿½ÃÅ°´Â ÀÛ¾÷À» ÇÏ´Â °Í°ú µ¿ÀÏÇÏ´Ù. ½ÇÇà °á°ú´Â CPU, ¸Þ¸ð¸®ÀÇ ¼Óµµ¿¡ µû¶ó ´Þ¶óÁö´Âµ¥ ³ªÀÇ ³ëÆ®ºÏ(P3-600 ½Ã½ºÅÛ)¿¡¼ Å×½ºÆ®ÇØ º» °á°ú 0.87ÃÊ Á¤µµ°¡ °É·È´Ù. ºñ±³Àû ÃÖ½ÅÀÇ CPU¿¡¼ Å×½ºÆ®ÇØ º» °á°ú´Â 0.19ÃÊ·Î ÈξÀ ´õ »¡¶ú´Âµ¥ ±×·¯°í º¸´Ï ³ëÆ®ºÏÀ» ¾÷±×·¹À̵åÇÒ ¶§°¡ µÈ °Í °°´Ù.
´ëÃæ 1ÃÊ°¡ Á¶±Ý ¾ÈµÇ´Â ½Ã°£ÀÌ °É·È´Âµ¥ ÀÌ °è»ê´ë·Î¶ó¸é 1MB¸¦ À̵¿ÇÏ´Â µ¥´Â ºÒ°ú 0.01Ãʵµ ¾È °É¸°´Ù´Â ¾ê±â´Ù. 100MB¶ó¸é »ç½Ç ±²ÀåÈ÷ Å« ¿ë·®Àε¥µµ »ý°¢º¸´Ù´Â ºü¸£´Ù. ¿Ö³ÄÇϸé memmove´Â CPU°¡ Çϵå¿þ¾î Â÷¿ø¿¡¼ Áö¿øÇÏ´Â ¸í·ÉÀÌ¸ç ¾öû³ª°Ô °í¼ÓÀ¸·Î µ¿ÀÛÇϱ⠶§¹®ÀÌ´Ù. ÀÌ ÇÔ¼öÀÇ ³»ºÎ´Â C Äڵ嵵 ¾Æ´Ï°í ¾î¼Àºí¸® Äڵ嵵 ¾Æ´Ï¸ç CPU°¡ ¹Ù·Î ¾Ë¾ÆµéÀ» ¼ö ÀÖ´Â ÀÌÁø ±â°è¾î Äڵ带 ¹Ù·Î È£ÃâÇϵµ·Ï µÇ¾î ÀÖÀ¸¸ç ±× ¼Óµµ°¡ °¨È÷ »ó»óÀ» ºÒÇãÇÒ Á¤µµ´Ù. ÃÖ½ÅÀÇ CPU¿¡¼´Â 1ÃÊ¿¡ 50¾ï °³ÀÇ ºñÆ®¸¦ ´Ü ÇÑ ¹ø¿¡ À̵¿½Ãų ¼ö ÀÖ´Â Á¤µµÀÌ´Ï ±× ¼Óµµ°¡ ¾î´À Á¤µµÀÎÁö °¨ÀÌ ¿Ã °ÍÀÌ´Ù.
10MBÀÇ ¹®¼¸¦ ÆíÁýÇÏ°í ÀÖ´Ù¸é 0.1ÃÊ°¡ °É¸®´Âµ¥ ÀÌ Á¤µµ¸é ´À¸®´Ù°í ´À²¸Áú °ÍÀÌ°í 50MB ÆíÁý½Ã´Â 0.5ÃÊ°¡ °É¸®¹Ç·Î µµÀúÈ÷ ¸ø¾µ ÇÁ·Î±×·¥À̶ó°í »ý°¢ÇÒ °ÍÀÌ´Ù. ŸÀÌÇÎ ¼Óµµ°¡ ºü¸¥ »ç¶÷Àº Æò±Õ ºÐ´ç 600Ÿ Á¤µµ¸¦ Ä¡¹Ç·Î »ðÀÔ ½Ã°£Àº ÃÖ¼ÒÇÑ 0.1ÃÊ ¹Ì¸¸À̾î¾ß ÇÑ´Ù. º¸Åë ÆíÁýÆÄÀÏÀº 1MB ¹Ì¸¸ÀÎ °æ¿ì°¡ ´ëºÎºÐÀÌ°í 100KB Á¤µµÀÇ ÆÄÀÏÀº ÇÑ ¹ø Å°º¸µå¸¦ Ä¥ ¶§¸¶´Ù 1/1000Ãʸ¦ ¼Ò¸ðÇϹǷΠÀÌ·± ÀÛÀº ÆÄÀÏÀ» ÆíÁýÇÒ ¶§´Â ¹«½ÃÇصµ µÉ¸¸ÇÑ ½Ã°£ÀÌ´Ù.
µÎ ¹æ¹ýÀº °¢°¢ÀÇ Àå´ÜÁ¡À» °¡Áö°í Àִµ¥ °¢ ¹æ¹ýÀÇ ¼º´ÉÀº ÆíÁýÇÒ ÆÄÀÏÀÇ Å©±â¿Í ÇÔ¼ö °ü°è¸¦ °¡Áö°í ÀÖ´Ù. ÆÄÀÏÀÌ Ä¿Áú¼ö·Ï ´ÜÀÏ ¹öÆÛ ¹æ¹ýÀÌ ºÒ¸®Çϸç ÀÛÀ¸¸é ¿ÀÈ÷·Á ÁÙ´ÜÀ§ ¹öÆÛ ¹æ¹ýÀÌ ´õ ¹ø°Å·Ó´Ù. Á¤È®ÇÏ°Ô ÃøÁ¤À» ÇØ º» °ÍÀº ¾Æ´ÏÁö¸¸ ÆíÁýÆÄÀÏÀÇ Å©±â¿Í µÎ ¹æ¹ýÀÇ ¼º´ÉÀº ´ëü·Î ´ÙÀ½°ú °°Àº ÇÔ¼ö °ü°è¸¦ ÀÌ·ê °ÍÀÌ´Ù.
¾î¶² ¹æ¹ýÀ̳ª ÆÄÀÏ Å©±â°¡ Ä¿Áö¸é ¼º´ÉÀÌ ¶³¾îÁö´Â °ÍÀº ¾î¿ ¼ö ¾ø´Â ÀÏÀÌ°í ´Ù¸¸ ¹Ýºñ·Ê Á÷¼±ÀÇ ±â¿ï±â°¡ ´Ù¸¦
»ÓÀÌ´Ù. ÀÌ ±×·¡ÇÁ »ó¿¡¼ µÎ ¹æ¹ýÀÌ µ¿ÀÏÇÑ ¼º´ÉÀ» ³»´Â ¥áÁ¡À» °¡Á¤ÇÒ ¼ö Àִµ¥ ÀÌ Á¡ÀÇ À§Ä¡´Â ¾îµðÂë µÉ±î? ¾Æ¸¶ 10MB~30MB »çÀÌ°¡ µÇÁö ¾ÊÀ»±î »ý°¢µÇ´Âµ¥ ÀÌ Á¡Àº CPU°¡ ´õ »¡¶óÁö¸é
Á¡Á¡ µÚ·Î À̵¿ÇÏ´Â °æÇâÀÌ ÀÖ´Ù. ±×¸®°í CPU´Â È®½ÇÈ÷ »¡¶óÁö°í ÀÖ´Ù.
¿©·¯ °¡Áö ºÐ¼®°ú °ËÅ並 ÇÑ °á°ú
ApiEdit´Â ´ÜÀÏ ¹öÆÛ ¹æ¹ýÀ» äÅÃÇϱâ·Î Çß´Ù. ¿Ö³ÄÇÏ¸é ¹«¾ùº¸´Ù ³í¸®°¡ °£´ÜÇÏ°í Á÷°üÀûÀ̱⠶§¹®ÀÌ´Ù. ¶ÇÇÑ ½Ç½ÀÀ» À§ÇÑ ÇÁ·ÎÁ§Æ®¿¡¼ µð¹ö±ëÀ»
ÆíÇÏ°Ô ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù´Â Á¡µµ °í·ÁµÇ¾ú´Ù. ¼½ÄÀÌ ¾ø´Â ÅؽºÆ® ÆíÁý±â¶ó¸é ´ÜÀÏ ¹öÆÛ¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ Å¹¿ùÇÑ ¼±ÅÃÀÎ °Í °°´Ù. ApiEdit°¡
½Ç½ÀÀ» À§ÇÑ ¿¹Á¦À̱⠶§¹®¿¡ ÀÌ ¹æ¹ýÀ» ¼±È£ÇÏ´Â °ÍÀº ¾Æ´Ï¸ç ½ÇÁ¦ Á¦Ç°À» ¸¸µç´Ù ÇÏ´õ¶óµµ ´ÜÀÏ ¹öÆÛ°¡ ÈξÀ ´õ ÁÁÀº ¹æ¹ýÀÌ´Ù.
³í¸®°¡ °£´ÜÇØÁø´Ù´Â °ÍÀº Äڵ尡 ´ú º¹ÀâÇØÁø´Ù´Â
¾ê±â°¡ µÇ°í ÀÌ´Â °ð °³¹ß ºñ¿ëÀ» °¨¼Ò½ÃÄÑ °³¹ß ±â°£À» ´ÜÃà½ÃÅ°´Â È¿°ú¸¦ °¡Á®¿Â´Ù. ¹Ù²Ù¾î ¾ê±âÇÏÀÚ¸é µ¿ÀÏÇÑ ºñ¿ëÀ» µé¿´À» ¶§ ÁÙ´ÜÀ§ ¹öÆÛ¸¦ »ç¿ëÇÏ´Â
¹æ½Äº¸´Ù´Â ´õ ¸¹Àº ±â´ÉÀ» ¾ÈÁ¤ÀûÀ¸·Î Á¦°øÇÒ ¼ö ÀÖ´Ù´Â ¾ê±â´Ù.
±×·¯³ª ±×·¸´Ù°í Çؼ ÁÙ´ÜÀ§ ¹öÆÛ ¹æ¹ýÀÌ ÁÁÁö
¾Ê´Ù´Â ¶æÀº ¾Æ´Ï´Ù. Á» º¹ÀâÇصµ Àß ±¸ÇöÇسõÀ¸¸é È®À强Àº È®½ÇÈ÷ ¿ì¼öÇÏ´Ù. ¼½Ä°ú ±âŸ º¹ÀâÇÑ °³Ã¼µéÀÌ Æ÷ÇԵǴ ¿öµåÇÁ·Î¼¼¼¶ó¸é ´ç¿¬È÷ ÁÙ´ÜÀ§
¹öÆÛ¸¦ ¼±ÅÃÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù.
Áö±Ý±îÁö ¹ßÇ¥µÈ ´ëºÎºÐÀÇ ÆíÁý±âµéÀº ÁÙ´ÜÀ§ ¹öÆÛ
¹æ½ÄÀ¸·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù. ¿Ö³ÄÇÏ¸é ±×·± ÆíÁý±â¸¦ ¸¸µé±â ½ÃÀÛÇÒ ÁîÀ½¿¡´Â CPU ¼Óµµ°¡ ÇüÆí¾ø¾ú°í µû¶ó¼ ÆÄÀÏÀÌ Á¶±Ý¸¸ Ä¿Á®µµ ´ÜÀÏ ¹öÆÛ ¹æ½ÄÀ¸·Î´Â
Á¦ ¼Óµµ¸¦ ³¾ ¼ö°¡ ¾ø¾ú´Ù. ÇÏÁö¸¸ ApiEdit´Â ´Ê°Ô ¸¸µé¾îÁø °ü°è·Î °í¼º´É CPU¸¦ ¹Ï°í °ú°¨ÇÏ°Ô ´ÜÀÏ ¹öÆÛ ¹æ½ÄÀ» äÅÃÇÏ¿´´Ù.
ÀÌ ¼±ÅÃÀÌ ¿Ç¾Ò´ÂÁö ¾Æ´ÑÁö´Â ÃÖÁ¾ Á¦Ç°ÀÇ ¼º´ÉÀ»
Å×½ºÆ®ÇØ ºÁ¾ß ¾Ë ¼ö ÀÖÀ¸¸ç ¿À·ÎÁö °á°ú·Î¼ Æò°¡µÇ¾î¾ß ÇÑ´Ù. ¾î·µç µÎ ¹æ½ÄÀ» ´Ù ¼±ÅÃÇÒ ¼ö´Â ¾ø±â ¶§¹®¿¡ Ãʱ⿡ ÀÌ·± ¾î·Á¿î °áÁ¤À» ³»¸®Áö
¾ÊÀ» ¼ö ¾øÀ¸¸ç ÇÑ ¹ø ³»¸° ½ÅÁßÇÑ °áÁ¤¿¡ ´ëÇؼ´Â ½º½º·Î È®½ÅÀ» °¡Áö°í ¹Ð¾î ºÎÄ¡´Â ¼ö¹Û¿¡ ¾ø´Ù.