안녕하세요 쓰레드를 사용하여 (쓰레드 생성 100개)
1쓰레드당 메모리맵에서 조건에 맞는 값을 1000라인정도 를 5초에 한번씩 검색하고 검색값된값을 메모리맵에서 지우려고합니다. 쓰레드가 100개이다보이 성능이 좋아보이지는 않네요
위의 조건에서 성능을 늘리는 좋은 방법이 있을까요?
각 라인이 고정사이즈를 갖는다면(옵셋을 그냥 한큐에-상수시간에- 안다면)일단 지울때, 진짜루 지우지 말고 헤더를 두어 플래그만 세팅하도록 하면 다소 나아질것입니다.
또한, 지우기 위해서 100개가 lock에 시달려야(동기화 시간)할텐데, 이 문제는 시스템의 동기화메카니즘을 어떻게(무엇을 선택하거나/만들어서) 빨리 할것인가에 달려있는듯합니다.
쓰레드가 다수개일때, SMP라면 유리할 수 있지만, context switch overhead도 무시못할 변수입니다.
음, open problem으로 보입니다. 그냥 최선을 다해야 겠지요. 최적의 쓰레드개수를 생성하고(1~100까지) 테스트를 수행해서 실험적으로 구해보시는게 ....
비동기 I/O를 사용하고 쓰레드 수를 좀 줄이시는 방법이 좋지 않을까 생각됩니다. (IOCP처럼...)
어떤 환경의 어떤 용도인지 알려주시면 좀 더 적절한 방법을 같이 생각해볼 수 있을것 같습니다.
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org 반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
$ man pthread_cond_init
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
각 라인이 고정사이즈를 갖는다면(옵셋을 그냥 한큐에-상수시간에- 안다면)
각 라인이 고정사이즈를 갖는다면(옵셋을 그냥 한큐에-상수시간에- 안다면)일단 지울때, 진짜루 지우지 말고 헤더를 두어 플래그만 세팅하도록 하면 다소 나아질것입니다.
또한, 지우기 위해서 100개가 lock에 시달려야(동기화 시간)할텐데, 이 문제는 시스템의 동기화메카니즘을 어떻게(무엇을 선택하거나/만들어서) 빨리 할것인가에 달려있는듯합니다.
쓰레드가 다수개일때, SMP라면 유리할 수 있지만, context switch overhead도 무시못할 변수입니다.
음, open problem으로 보입니다. 그냥 최선을 다해야 겠지요. 최적의 쓰레드개수를 생성하고(1~100까지) 테스트를 수행해서 실험적으로 구해보시는게 ....
비동기 I/O를 사용하고 쓰레드 수를 좀 줄이시는 방법이 좋지 않을까 생
비동기 I/O를 사용하고 쓰레드 수를 좀 줄이시는 방법이 좋지 않을까 생각됩니다.
(IOCP처럼...)
어떤 환경의 어떤 용도인지 알려주시면 좀 더 적절한 방법을 같이 생각해볼 수 있을것 같습니다.
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
[code:1]$ man pthread_cond_init[/code:1]
$ man pthread_cond_init
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기