안녕하세요.
현재 x86-64로 페도로 14를 설치 사용하고 있습니다.
성능이 중요한 코드를 작성하고 있어, 병렬처리를 수행하려고 합니다.
많이들 사용하시는 pthread_create를 호출하여 스레드를 생성하였는데요.
pthread_create를 호출 후 프로그램 성능이 2배 가까이 느려지는 현상이 있네요.
64bit에서 glibc가 4G 이하로 stack을 지원한다는 이야기는 있지만, 지금은 스레드를 최대 4개 생성하고 있습니다.
pthread_create로 스레드 생성 후, 스레드 모듈을 종료하여도 프로그램 성능이 느려지네요.
예를 들면,
void *test()
{
// 아무일도 안하고 종료.
}
main()
{
work(); => 10초 걸림.
pthread_create(threadid, NULL, Test, NULL);
sleep(5); => 스레드 생성 작업의 영향을 최소화 하기 위하여