Socket 클래스의 setPerformancePreferences 메쏘드를 사용하자..

보통 자바로 네트워크 프로그래밍을 할때 소켓에 대한 퍼포먼스 튜닝은 그닥 중요한 포인트가 아니었던것 같네요.. Socket 클래스의 setPerformancePreferences 메쏘드를 저도 사용을 하지 않고 있고, 사용하는 라이브러리도 별로 없는거 같네요.. 이번에 Proactor 패턴에 대해서 살펴보고 코드를 보다가 발견을 했네요.. ^^;;

아래는 API 문서에 나오는 내용입니다.

public void setPerformancePreferences(int connectionTime, int latency, int bandwidth)이
소켓의 퍼포먼스 설정을 실시합니다.
소켓은 디폴트로 TCP/IP 프로토콜을 사용합니다. 구현에 따라서는 TCP/IP와는 다른 퍼포먼스 특성을 가지는 대체 프로토콜이 제공되는 일도 있습니다. 어플리케이션은 이 메서드를 사용하는 것으로 구현으로 이용 가능한 프로토콜의 선택시에 이러한 균형의 취하는 방법을 나타내는 독자적인 설정을 표현할 수 있습니다.

퍼포먼스 설정은 접속 시간의 짧음, 응답 시간의 속도, 대역폭의 넓이의 상대적인 중요도를 나타내는 3 개의 정수값 에 의해 기술됩니다. 정수의 절대치에 관계성은 없고, 프로토콜을 선택하기 위해서 값을 단지 비교합니다. 값이 크면보다 강한 설정을 나타냅니다. 잘못된 값 은 정의 값보다 우선 순위가 낮은 일을 나타냅니다. 어플리케이션이 응답 시간의 속도와 대역폭의 넓이보다 접속 시간의 짧음을 우선하는 경우, 이 메서드를 (1, 0, 0) 이라고 하는 값으로 호출할 수 있습니다 . 어플리케이션이 응답 시간의 속도보다 대역폭의 넓이를, 또 접속 시간의 짧음보다 응답 시간의 속도를 우선하는 경우, 이 메서드를 (0, 1, 2) 이라고 하는 값으로 호출할 수 있습니다 .

이 소켓이 접속된 뒤에 이 메서드를 호출해도, 아무것도 행해지지 않습니다.

파라미터:
connectionTime – 접속 시간의 짧음의 상대적인 중요도를 나타내는 int
latency – 응답 시간의 속도의 상대적인 중요도를 나타내는 int
bandwidth – 대역폭의 넓이의 상대적인 중요도를 나타내는 int

도입된 버전 :  1.5

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.