메시지 큐 메시지 Send에 있어서 성능 문제
SweetChoco
질문 제목 :
메시지 큐 메시지 send에 있어서 성능 문제
메시지큐의 개수에 따라서 성능의 차이가 납니다.
질문 내용 : for(i=0; i10000000;i++)
{
setdata(&data,i,2,3,4,one,two,three);
ret = msgsnd(msgq[i%thrsiz], (void *)&data, sizeof(data), ipc_nowait); if(ret 0)
{
printf([%d] error : msgsend\n,i%thrsiz);
sleep(1);
i--;
}
else
{
// printf([send] send to msg queue[%d] : data [%d] \n,i%thrsiz,i);
}
}
for(i=0; ithrsiz; i++)
{
setdata(&data,-1,2,3,4,one,two,three);
ret = msgsnd(msgq[i%thrsiz], (void *)&data, sizeof(data), ipc_nowait); if(ret 0)
{
perror(msgsnd);
sleep(1);
i--;
}
}다음과 같은 소스가 있는데
define 된thrsiz의 값이 10개냐 2개냐에 따라서 실행 시간이2개인경우 37초10개인경우 68초가 걸립니다왜 그럴까요?-_-...제 지식으로는 알 수가 없네요;
-
난초
네 그함수가 뭔질 모르니 왜 느린지 저 코드만으로는 판단이 안되네요
-
예그리나
개인적으로 지정한 함수죠 그냥 data에 값을 넣는 함수입니다
DATA또한 제가 그냥 지정한 구조체이구요. 함수 이름대로 이해하시면 될것 같아요 -
볼1매그녀
setData 가 머죠 ?