728x90
반응형
오늘은 입/출력 인터페이스 중 어떤걸 선택하는지에 대해 이야기해보겠습니다.
결론적으로는 케이스 바이 케이스라고 볼 수 있습니다.
보통 IPC는 소켓, 메시지 큐, 공유 메모리 등을 많이사용합니다.
일반적으로는 속도는 소켓보다 메시지 큐, 공유 메모리가 더 빠릅니다.
그러나 속도 차이가 그렇게 심하게 나지는 않습니다.
예를 들자면 소켓으로 1초에 10만의 데이터를 보낸다면, 메시지 큐로는 1초에 12만의 데이터를 보낼 수 있습니다.
이럴 경우, 어떤 IPC를 선택해야할까요?
무조건적으로 메시지 큐를 선택을 하지는 않을겁니다.
IPC 기술과 더불어 백그라운드에서 데이터를 처리하는 로직부분을 더 신경쓰면 더 많은 데이터를 처리할 수 있을겁니다.
데이터를 처리하는 로직에서 1초에 100개의 데이터를 처리한다고 하면, 이 경우는 소켓을 사용하던, 메시지 큐를 사용하던 크게 의미가 없습니다.
여기서 생각해보야 할 것은 속도말고 데이터의 응답을 보게 되면, 이 경우는 블록킹 기법보다는 논블록킹 기법이 효과 적입니다.
블록킹 기법으로 데이터를 처리하게되면 아무래도 딜레이가 생기기 때문입니다.
예전에 대량의 데이터를 처리할 경우, 블록킹 기법을 사용할 경우, 데이터를 처리할 때 데이터 로스가 발생하였습니다.
논블록킹을 사용할 경우, 모든 데이터를 정상적으로 처리하였습니다.
728x90
반응형
'프로그래밍 > C' 카테고리의 다른 글
[C] pthread_join 쓰레드 조인 (0) | 2022.05.25 |
---|---|
[C] likely, unlikely 함수 (0) | 2022.04.26 |
[C] 소켓 옵션 제어 ( getsockopt, setsockopt ) (2) (0) | 2022.02.27 |
[C] 소켓 옵션 제어 ( getsockopt, setsockopt ) (1) (0) | 2022.02.23 |
[C] undefined reference to 에러 (2) | 2021.08.13 |