[게임서버프로그래밍#3] Overlapped I/O
이 글에서는 Windows 환경에서 고성능 네트워크 통신을 위해 사용되는 Overlapped I/O를 설명한다.기존 비동기 방식의 한계를 보완하며, CPU 낭비를 줄이고 I/O 효율을 높이는 방법과 주의사항까지 구체적으로 다룬다. 비동기 처리 방식의 문제점기존 비동기 처리(select + socket + thread)에서는 다음과 같은 문제점이 존재한다.메모리 복사 비용:send() 같은 socket 내부 함수 호출 시 메모리 복사가 발생한다.불필요한 재시도 호출:송수신 버퍼에 1바이트라도 여유가 있으면 send()나 recv()를 호출하려 하지만, 실제로 데이터를 보내거나 받을 수 없는 경우가 발생한다.CPU 낭비:데이터를 보낼 수 없는 상황에서도 API 호출을 반복하면서 CPU 자원을 낭비하게 된다..
2024.06.04