ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¼Ò°³
ÆÄÀÏÀ» ÀÐ°í ¾µ¶§, Çѹø¿¡ ÀоîµéÀÌ´Â µ¥ÀÌÅÍÀÇ Å©±â¿¡ µû¶ó Àбâ/¾²±â ¼º´ÉÀÌ ´Þ¶óÁø´Ù´Â °ÍÀº »ó½Ä¼±¿¡¼ ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ´ë·« ¾Ë°í ÀÖ´Â ¹Ù·Î´Â 1024 ¹ÙÀÌÆ® ´ÜÀ§·Î Àоî¿Ã ¶§ °¡Àå È¿°úÀûÀÎ °ÍÀ¸·Î ¾Ë°í ÀÖ´Ù. ½ÇÁ¦, ÀÌ·¯ÇÑ ¿ì¸®ÀÇ »ó½ÄÀÌ ¿Ã¹Ù¸¥Áö¸¦ È®ÀÎÇϱâ À§Çؼ ¹öÆÛ Å©±â¿¡ µû¸¥ Àбâ/¾²±â ¼º´É¿¡ ´ëÇÑ ÀڷḦ ¸¸µé¾îº¸±â·Î Çß´Ù.
´ÙÀ½Àº Å×½ºÆ®¸¦ À§Çؼ ¸¸µç °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. 32 ºÎÅÍ 4096 ±îÁö ¹öÆÛ»çÀÌÁ 2¹è¾¿ Áõ°¡½Ã۸é¼, µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ ÀÐ°í ¾²´Âµ¥ °É¸®´Â ½Ã°£À» üũÇß´Ù. ÆÄÀÏÀÇ Å©±â´Â 256M·Î Çß´Ù. #include <stdlib.h> #include <fcntl.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/time.h> #include <time.h> int wtest(int cycle, int block_size); int rtest(int cycle, int block_size, char *file); int main(int argc, char **argv) { int fd; int i = 1; int cycle = 0; int total_size = 1024*1024*256; int minblock = 16; int maxblock = 4096; int defaultblock = minblock; printf("========== Write Perf\n"); while(minblock = minblock * 2) { if (minblock > maxblock) { break; } wtest(total_size/minblock,minblock); } printf("========== Read Perf\n"); minblock = defaultblock; while(minblock = minblock * 2) { if (minblock > maxblock) { break; } rtest(total_size/minblock,minblock,"temp.1"); } close(fd); } // ¾²±â ¼º´É Å×½ºÆ® int wtest(int cycle, int block_size) { int i; int fd; clock_t sclock, eclock; char *wdata; struct timeval stime, etime, rtime; unlink("temp.1"); wdata = (char *)malloc(block_size); fd = open("temp.1", O_CREAT|O_WRONLY,S_IRUSR|S_IWUSR); if (fd < 0) { perror("file open error"); return 1; } gettimeofday(&stime, NULL); sclock = clock(); for (i = 0; i < cycle; i++) { write(fd, (void *)&wdata, block_size); } eclock = clock(); gettimeofday(&etime, NULL); timersub(&etime, &stime, &rtime); printf("block=%d size=%d time=%d.%d clock=%.3fs\n", block_size, cycle*block_size, rtime.tv_sec, rtime.tv_usec, (double)(eclock-sclock)/CLOCKS_PER_SEC); close(fd); } // Àб⠼º´É Å×½ºÆ® int rtest(int cycle, int block_size, char *file) { char *buff; int fd; clock_t sclock, eclock; int readn; struct timeval stime, etime, rtime; buff = (char *)malloc(block_size); fd = open(file, O_RDONLY); if (fd < 0) { perror("file open error"); return 0; } gettimeofday(&stime, NULL); sclock = clock(); while(readn = read(fd, buff, block_size)) { } eclock = clock(); gettimeofday(&etime, NULL); timersub(&etime, &stime, &rtime); printf("block=%d size=%d time=%d.%d clock=%.3fs\n", block_size, cycle*block_size, rtime.tv_sec, rtime.tv_usec, (double)(eclock-sclock)/CLOCKS_PER_SEC); return 1; }
´ÙÀ½Àº ½ÇÇà°á°ú´Ù. $ ./rwtest ========== Write Perf block=32 size=268435456 time=29.196705 clock=21.370s block=64 size=268435456 time=15.144043 clock=10.640s block=128 size=268435456 time=12.217236 clock=6.880s block=256 size=268435456 time=9.473108 clock=5.060s block=512 size=268435456 time=9.154647 clock=3.000s block=1024 size=268435456 time=9.28617 clock=2.230s block=2048 size=268435456 time=7.589446 clock=1.750s block=4096 size=268435456 time=8.126196 clock=1.470s ========== Read Perf block=32 size=268435456 time=7.366217 clock=6.950s block=64 size=268435456 time=3.579088 clock=3.400s block=128 size=268435456 time=1.771714 clock=1.650s block=256 size=268435456 time=1.19989 clock=0.930s block=512 size=268435456 time=0.545688 clock=0.510s block=1024 size=268435456 time=0.332906 clock=0.320s block=2048 size=268435456 time=0.229784 clock=0.210s block=4096 size=268435456 time=0.179176 clock=0.160s
ÅØ½ºÆ®·Î´Â º¸±â°¡ Èûµé¾î¼, ±×·¡ÇÁ·Î ³ªÅ¸³»±â·Î Çß´Ù. óÀ½¿¡´Â gnuplot¸¦ »ç¿ëÇÒ±î »ý°¢Çß¾ú´Âµ¥, google chart¸¦ »ç¿ëÇϱâ·Î Çß´Ù. google chart´Â º°µµÀÇ ÇÁ·Î±×·¥¾øÀÌ, À¥»ó¿¡¼ ½±°Ô ÃÆ®¸¦ ¸¸µé¾î³¾ ¼ö ÀÖ´Ù.¹öÆÛÅ©±â¿¡ µû¸¥ ¾²±â ¼º´É¹öÆÛÅ©±â¿¡ µû¸¥ Àб⠼º´ÉÅ×½ºÆ® ȯ°æ
Å×½ºÆ® ȯ°æÀº ´ÙÀ½°ú °°´Ù.
°á°ú
°á°ú´Â ¿¹»óÇß´ø¹Ù¿Í Å©°Ô ´Ù¸£Áö ¾Ê´Ù. ´Ü ¾²±â¿¡ ÀÖ¾î¼, ¹öÆÛÀÇ Å©±â°¡ 256¸¦ ³Ñ¾î°¡°Ô µÇ¸é, ¾²±â½Ã°£¿¡ ÀÖ¾î¼ ¼º´ÉÀÇ °³¼±ÀÌ ±â´ëµÇÁö ¾Ê´Â ¹Ý¸é, Clock ½Ã°£Àº ²ÙÁØÈ÷ °¨¼ÒÇÔÀ» ¾Ë ¼ö ÀÖ´Ù. ±×·¸´Ù¸é, Clock ½Ã°£À» °¨¾ÈÇØ¼ 1024 byte Á¤µµ¸¦ ¼±ÅÃÇÏ´Â°Ô °¡Àå ¹«³ÇÒµí ½Í´Ù.
ÀбâÀÇ °æ¿ìµµ 1024 byteÁ¤µµ·Î ¹öÆÛÅ©±â¸¦ Àâ´Â°Ô °¡À幫³ÇÒµí ÇÏ´Ù. ÆÄÀÏÀÇ Å©±â°¡ Å©´Ù¸é 1024 byteÀÌ»óÀ» Àâ¾Æµµ ¾î´ÀÁ¤µµÀÇ ¼º´ÉÇâ»óÀº ±â´ëÇÒ ¼ö ÀÖÀ» °Í °°´Ù.
ÀÌ»ó ¹öÆÛÅ©±â¿¡ µû¸¥ Àбâ/¾²±â ¼º´ÉÃøÁ¤À» ÇØº¸¾Ò´Âµ¥, À̰ÍÀº DB¿Í °°ÀÌ, ·£´ý access°¡ ÀϾ´Â ¾îÇø®ÄÉÀ̼ÇÀ» À§Çؼ´Â ¾µ¸¸ÇÑ Á¤º¸¸¦ ÁÖ±â Èûµé °ÍÀÌ´Ù. ½Ã°£ÀÌ µÈ´Ù¸é ·£´ý accessÀÇ ¼º´ÉÃøÁ¤À» ÇØº¸´Â °Íµµ Àç¹ÌÀÖÀ» °Í °°´Ù. À̿ܿ¡ seek½Ã°£µî¿¡ ´ëÇÑ ¼º´ÉÃøÁ¤À» ÇØº¸´Â °Íµµ ±¦ÂúÀ»°Í °°´Ù.
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|