LOGIN • JOININ

webmaster

1. 말씀하신대로 모두 다해도 성능에는 큰 차이가 없을 듯합니다.

2. 쓸데없는 Async가 많이 사용되었다고 하시는데 해당 부분을 어떻게 수정해야할지 좀제안해 주시면 감사하겠습니다.

   do_accept는 현재 저 테스트와 아무런 상관이 없습니다.  접속처리는 처음에 100개만 한 이후에 변동이 없으며 벤치마크 내용에 포함되지 않습니다.

   ready_body와 read header 등과 같은 부분도 한개의 쓰레드로 통합한다는 것이 어떤 의미인지 제가 정확히 파악이 안되는 군요. 

3. atomic은 CRITICALSECTION에 비해서 성능이 우수하다고 할수 없습니다. 더군다나 해당 테스트에서는 쓰레드나 락처리는 성능에 큰 영향을 주는 요소가 아닙니다.


위 테스트에서 성능의 핵심은 동일한 처리를 할 때에 어떻게하면 최소한의 API호출로 달성하는 가가 가장 핵심이고 비동기처리에 최적화된 구조가 그 다음일 것이고 풀과 같은 동적 객체 할당문제 그 다음이 아마 다중 코어 처리 능력과 쓰레드 관련 동기화처리일 것입니다.

CGCII나 Supersocket은 내부적으로 이런 처리들이 아주 꼼꼼히 되어 있는 반면 asio는 크로스플랫폼과 일반화처리를 위한 범용적 구조를 가져야 하니 당연히 이런 것에 대한 처리에 한계가 있다고 봅니다.

앞에 댓글들을 읽어보시면 아시겠지만 말씀하신 내용뿐만 아니라 다양한 부분을 이미 앞에서 여러분들이 주장을 하신 적이 있고 저도 저 예제의 검토과정에서 여러 방면으로 검토를 했었었습니다.

말씀하신 부분을 적용해서 성능을 극적으로 향상시킬 수 있다면 직접 예제를 제작해 제안해 주시면 반영하도록 하겠습니다.

감사합니다.