나는 논리적 일 수 있다고 생각되는 몇 가지 질문을하고 싶지만, 인터넷에서 확실한 증거를 찾을 수는 없다.소켓 속도 이론 읽기
이 프로토콜에 대한 메시지를 구문 분석하는 방법의 기초. \n
이 충족 될 때까지 소켓 버퍼를 읽고 메시지 핸들러에 메시지를 디스패치하십시오.
이제 염두에두면 더욱 효율적입니다.
Method A)
1) read 1 byte from from socket buffer
2) check to see if byte is a newline
3) if it is not append to the array if it is send array to message handler and clear array
4) repeat until connection closed
또는
Method B)
1) read multi bytes from socket buffer as one chunk
2) search the array for a newline
3) if newline is found, send the beginning of the array up to the newline to message handler, then remove it from the array shifting remaining data down.
4) repeat until connection closed
언어이에 역할을하는 경우
은, 그것은 검색 및 자사 문자열 함수를 사용하여 루비에서 수행 될 것이다.나는 그것이 더 많은 데이터를 읽기 때문에 방법 B가 더 빠를 것이라고 생각,하지만 다시 문자열 검색이 빠를 것입니다 방법 A.
이상 추가 단계를 제공합니다?
OS는 대부분의 들어오는 데이터를 내부적으로 버퍼링합니다. 따라서 A와 B 모두이 버퍼에서 읽을 것입니다. 기본적으로 전체 버퍼를 읽는 것보다 빠르게 한 번에 1 바이트 씩 버퍼를 읽는 것이 문제입니다. Neil은 아래에서 나머지 부분을 설명합니다. 나는 당신이 운영체제 (호출 당 더 적은 레이어, 적은 메모리 관리 오버 헤드 등)에 덜 인터페이스 할 것이므로 B가 더 빠를 것이라고 확신한다. – Casper