안녕하세요
C#으로 Excel 파일의 데이터를 읽어서 처리 하고 있습니다.
하는 일은 파일을 열어서 한줄 한줄 읽어 특정 조건을 만족하는 데이터를 읽어서
MySQL DB에 저장하는 것 입니다.
한 파일 처리 하는데 10초 정도 소모 됩니다.
사용하고 있는 PC의 코어가 많아서
프로그램을 여러개 실행 시켰습니다.
그런데 N 배로 빨라지지 않아서 이유가 뭔지 알고 싶습니다.
PC사양은 Opteron 6276(물리 8코어) 4개이고 램은 256GB 입니다.
현재 사용하고 있는 모양은 아래와 같습니다.
동일한 프로그램을 처리하는 파일 범위를 다르게 해서 8개 수행하고 있습니다.
이 상태에서 CPU 점율이 크게 변화가 없고, 속도도 1개 처리하는 것 보다
각각 처리하는 시간이 길어지면서 단위 시간당 처리량의 합계가 거의 동일하거나 오히려 느립니다.
작업관리자 화면은 아래와 같습니다.
구글링 하다 보니 엑셀은 멀티 스레드를 지원하지 않는다는 얘기가 있는데
그것 때문일까요?
¶ÇÇÑ°¡Áö´Â ¿¢¼¿ÆÄÀÏÀ» ¼øÂ÷ÀûÀ¸·Î ÀÐ¾î¼ Ã³¸® Çϴ°ÍÀ̶ó¸é ¼Óµµ°¡ ºü¸¦¼ö ¾ø½À´Ï´Ù.
¸®·±ÀÛ¾÷Àº Ŭ·°ÀÌ ³ôÀº ½ÃÇÇÀ¯°¡ ´õ ÁÁ½À´Ï´Ù.
c# ¿¡¼ 󸮸¦ ÇÑ´Ù¸é ·ÎÁ÷À» ¹Ù²Ù¸é Á»´õ È¿À²ÀûÀ¸·Î °¡´ÉÇÕ´Ï´Ù.
3°³ÀÇ ÇÁ·Î¼¼½º¸¦ ¸¸µé¾î ¿¢¼¿ ÆÄÀÏÀ» ó¸® ÇÑ´Ù¸é ºü¸¦¼ö ÀÖ½À´Ï´Ù.
¿¹)
¿¢¼¿ÆÄÀÏ ¶óÀÎ Àüü °¹¼ö 300,000 ÁÙ À̶ó°í °¡Á¤ÇÒ떄
1ÇÁ·Î¼¼½º´Â 1ºÎÅÍ 100,000 ±îÁö
2ÇÁ·Î¼¼½º´Â 100,001 ºÎÅÍ 200,000 ±îÁö
3ÇÁ·Î¼¼½º´Â 200,001 ºÎÅÍ 300,000 ±îÁö
´õ ¸¹Àº ÇÁ·Î¼¼½º¸¦ ¸¸µé¸é ´õ »¡¸®µµ °¡´ÉÇÕ´Ï´Ù.
º¸ÅëÀº ÀÌ·¸°Ô ÇÁ·Î±×·¥À» ¾È¸¸µå´Â°ÍÀÌ ¹®Á¦ ÀÔ´Ï´Ù.
·ÎÁ÷¸¸ ¸î°³ ´õ Ãß°¡ ÇÏ¸é ºü¸¥ ÀÛ¾÷ÀÌ °¡´ÉÇÕ´Ï´Ù.
¸ÖƼ ÇÁ·Î¼¼½º·Î ¸¸µå´Â °Í°ú
ÇÁ·Î±×·¥À» ¿©·¯°³ ½ÇÇà½ÃÅ°´Â°Ô Â÷ÀÌ°¡ ÀÖ´ÂÁö ±Ã±ÝÇÕ´Ï´Ù.
¸ÖƼ ÇÁ·Î¼¼½º·Î ÇÑ°³ ÆÄÀÏÀ» ³ª´²¼ ¼öÇàÇÏ´Â °Í°ú
¿©·¡°³ ÆÄÀÏÀ» ³ª´©¾î¼ ¿©·¯°³ ÇÁ·Î±×·¥À¸·Î ó¸®ÇÏ´Â °ÍÀε¥
¾Æ·¡°ÍÀÌ ¾ÈµÇ´Â °ÍÀÌ ÀÌÀ¯°¡ ÀÖÀ»±î¿ä?
³ª´©¾î¼ °è»êÇÏ°Ç ÄÚ¾î Çϳª¸¸ °¡Áö°í °è»êÇÏÁö ¾ÊÀ»±î¿ä
Á¦°¡ ¾Æ´Â ¹Ù·Î Äھ ºÐ»ê½ÃÄѼ °è»êÇÒ ¼ö ÀÖ´Â °ÍÀº openMP¶ó´Â °ÍÀÌ ÀÖ±¸¿ä
ÀÌ°ÍÀÌ ¾Æ´Ï¶ó¸é °¡»óȽÃÄÑ¾ß ÇÏÁö ¾ÊÀ»±î »ý°¢ÇÕ´Ï´Ù.
32°³ Äھ Àִµ¥ 1°³ Äھ Á×¾î¶ó µµ´Â ¸ð¾ç»õÀÔ´Ï´Ù.
mysql ÀÌ ´Ù·®ÀÇ Ã³¸®¸¦ Àß ÇÒ ¼ö ÀÖ´Ù´Â ÀüÁ¦ÇÏ¿¡...(db ÀÚü¸¦ ³íÇÏ´Â °Ô ¾Æ´Ï¶ó...½Ã½ºÅÛ ±¸¼º»ó...)
ÀÏ´Ü...¼·Î ´Ù¸¥ ¿¢¼¿ ÆÄÀÏÀ» ó¸®ÇÏ°Ô ÇÏ¿© ¿©·¯°³¸¦ µ¹·Áº¸½Ã°í...
cpu »ç¿ë·®ÀÌ Áõ°¡ÇÑ´Ù¸é...1°³ÀÇ ¿¢¼¿ ÆÄÀÏÀ» ¿©·¯ ½ÇÇàÆÄÀÏÀÌ ¿ÀÇÂÇؼ »ç¿ëÇϱ⠶§¹®À̶ó°í º¸¾Æ¾ßÇÏÁö ¾ÊÀ»±î ½Í½À´Ï´Ù.
¸¸ÀÏ ±×·¸´Ù¸é...¿¢¼¿ ÆÄÀÏ 1°³¸¦ ¿©·¯°³·Î ÂÉ°³´Â ÇÁ·Î±×·¥À» ¸¸µé¾î¼ ÂÉ°µ ÈÄ¿¡ ÀÏ°ý·Î ó¸®ÇÏ´Â°Ç ¾î¶³·±Áö¿ä?
ÇÑ ÆÄÀÏÀ» ºÒ·¯¿À¸é ´Ù¸¥ ÇÁ·Î¼¼½º¿¡¼´Â ÇØ´ç ÆÄÀÏÀ» ¿¢¼¼½º ÇÒ ¼ö ¾ø´Â °æ¿ìµµ ÀÖ¾ú´ø °Í °°½À´Ï´Ù.
°¨»çÇÕ´Ï´Ù.
µ¥ÀÌÅÍ ÆÄÀÏ ¿ë·®ÀÌ ¸¹ÀÌ Å©Áö ¾Ê´Ù¸é, À̸§À» ¹Ù²Û ÆÄÀÏÀ» N°³ ¸¸µé¾î¼ µû·Î µ¹¸®´Â ¹æ¹ýµµ °í·ÁÇØ º¼ ¼ö ÀÖÀ» °ÍÀ̶ó°í »ý°¢µË´Ï´Ù.
¾ÆÀ̵ð¾î °¨»çÇÕ´Ï´Ù
°°Àº ÇÁ·Î±×·¥ ¿©·¯ ÀνºÅϽº°¡ µ¹¾Æ°¡´Ï µðºñ¿¡ °°Àº Å×À̺íµéÀÌ ¾÷µ¥ÀÌÆ® µÉÅĵ¥ »ç½Ç µðºñ ÀνºÅϽº´Â ÇϳªÀÎÁö¶ó.. ¿©·¯ ÀÛ¾÷ÀÌ ¿©·¯ ÇÁ·Î¼¼½º¿¡¼ µ¿½Ã´Ù¹ßÀûÀ¸·Î µé¾î¿Íµµ ¾êµéÀ» ½ÃÄý¼ÈÇÏ°Ô Ã³¸®ÇÒ ¼ö¹Û¿¡ ¾ø°Åµç¿ä.
ÇÁ·Î±×·¥ ÀÚü¸¦ ¸ÖƼÇÁ·Î¼¼½Ì/¾²·¹µùÀ¸·Î Â¥´Â°Å³ª ±×³É ¿©·¯ ÀνºÅϽº µ¹¸®´Â°Å³ª µ¹¾Æ°¡´Â ¸ð¾ç¿¡¼± º° Â÷ÀÌ°¡ ¾ø½À´Ï´Ù.
´ÜÀÏ ÆÄÀÏÀ» ¿©·¯ ÇÁ·Î¼¼½º¿¡¼ Àоî¿À´Â °Íµµ ÇØ´ç»çÇ×ÀÌ ¾Æ´Ñµí ½Í°í¿ä.. ¾îÂ÷ÇÇ Àб⸸ Çϴϱî..
1°³·Î µ¹¸®´Ï±î 10ºÐ¿¡ 90°³ ó¸® Çϳ׿ä...
Âü°íÇϼ¼¿ä.
Àß ÀÐ¾î º¸°Ú½À´Ï´Ù.
ÀÌÀ¯´Â Àß ¸ð¸£°Ú´Âµ¥
¿©·¯°³ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é
Excel ÆÄÀÏ¿¡¼ ÇÑ ÁÙ¾¿ Àд ºÎºÐÀÇ ½Ã°£ÀÌ
´Ã¾î³ª³×¿ä.
¿¹»óÇÏ´Â °ÍÀº
Excel ÆÄÀÏÀ» Àд Interop ÀÌ ¿©·¯ ½º·¹µå¿¡¼ Á¢±ÙÇÏ´Â °ÍÀ»
Áö¿øÇÏÁö ¾Ê´Â °Í °°½À´Ï´Ù.