다음을 통해 공유


수정 버전 2: 더 적은 수의 연결을 위해 다시 디자인

이 수정 버전에서는 불필요한 연결을 제거하기 위해 샘플 애플리케이션이 다시 디자인되었습니다.

경고

또한 이 애플리케이션의 예제는 코드 변경으로 가능한 성능 향상을 설명하기 위해 의도적으로 성능 저하를 제공합니다. 애플리케이션에서 이 코드 샘플을 사용하지 마세요. 설명 용도로만 사용됩니다.

 

ComputeNext( Map );
bind( s, ... );
connect( s, ... );
for(int i=0 ; i < ROWS ; ++i)
  for(int j=0 ; j < COLS ; ++j)
  {
    BYTE tmp[3];
    tmp[0] = i;
    tmp[1] = j;
    tmp[2] = Map[i][j];
    send( s, tmp, 3 );
    recv( s, &byRet, 1 );
  }
closesocket( s );

나머지 문제

수정 버전 2의 변경 내용으로 업데이트당 하나의 연결만 만들도록 애플리케이션이 다시 디자인되었습니다. 애플리케이션에는 여전히 다음과 같은 성능 문제가 포함됩니다.

  • 애플리케이션은 여전히 직렬화되고 수다스럽습니다.
  • 응용 프로그램은 여전히 지방 디자인을 가지고; 이 디자인에는 작업이 필요하지 않은 많은 송신이 있습니다.
  • 전송은 여전히 3바이트이며 스트리밍이 좋지 않습니다.

주요 성능 메트릭

다음 성능 메트릭은 RTT(왕복 시간), Goodput 및 프로토콜 오버헤드로 표현됩니다. 이러한 용어에 대한 설명은 네트워크 용어 항목을 참조하세요.

이 버전은 다음과 같은 성능 메트릭을 반영합니다.

  • 셀 시간 — 1*RTT
  • Goodput — 4바이트/RTT
  • 프로토콜 오버헤드 — 96.8%

느린 애플리케이션 개선

네트워크 용어

기준 버전: 성능이 매우 낮은 애플리케이션

수정 버전 1: 명백한 정리

수정 버전 3: 압축 블록 보내기

향후 개선 사항