다음을 통해 공유


BasicHttpBinding.MaxBufferSize 속성

정의

채널로부터 메시지를 수신하는 버퍼의 최대 크기(바이트)를 가져오거나 설정합니다.

public:
 property int MaxBufferSize { int get(); void set(int value); };
public int MaxBufferSize { get; set; }
member this.MaxBufferSize : int with get, set
Public Property MaxBufferSize As Integer

속성 값

Int32

이 바인딩으로 구성된 엔드포인트에 대해 메시지가 처리되는 동안 해당 메시지를 저장하는 버퍼의 최대 크기(바이트)입니다. 기본값은 65,536바이트입니다.

예제

다음 예제에서는 MaxBufferSize 를 1,000,000바이트로 설정합니다.

BasicHttpBinding binding = new BasicHttpBinding();

// set to one million
binding.MaxBufferSize = 1000000;

이 속성의 값은 구성 파일에서 설정할 수도 있습니다.

설명

처리되는 동안 메시지를 저장할 메모리가 부족하면 CLR 힙에서 더 많은 메모리를 할당해야 하므로 가비지 수집 오버헤드가 증가합니다. CLR 가비지 힙의 광범위한 할당은 메시지 버퍼 크기가 너무 작고 더 큰 할당으로 성능을 향상시킬 수 있음을 나타냅니다.

MaxBufferSize 속성의 값과 해당 중요성은 메시지가 수신되는 채널에서 버퍼링되거나 스트리밍되는지 여부에 따라 다릅니다.

여기서 설정한 버퍼 크기 제한은 메시지 교환의 성능을 최적화하는 데 목적이 있습니다. 설정된 버퍼 최대값을 초과하는 메시지는 삭제됩니다. 그 대신 CLR 힙으로부터 추가 메모리가 요청되며 그로 인해 버퍼를 사용하는 경우보다 더 많은 가비지 컬렉션 오버헤드가 발생합니다.

참고

MaxBufferSize 및 MaxReceivedMessageSize에 대한 설정은 로컬 동작 설정입니다. 즉, 메타데이터 형태로 다른 엔드포인트에 전송되지 않습니다. 메타데이터에서 최대 메시지 크기가 2GB인 서비스에 프록시를 생성하는 경우 프록시의 기본값은 64K입니다. 메시지 및 메시지 버퍼 크기를 적절히 제한하는 것은 로컬 관리자의 업무입니다.

적용 대상