다음을 통해 공유


WSDualHttpBinding.MaxBufferPoolSize 속성

정의

메시지 버퍼 관리자에 할당될 수 있는 최대 메모리 크기(바이트)를 가져오거나 설정합니다. 메시지 버퍼 관리자는 이 바인딩으로 구성된 엔드포인트에서 메시지를 수신합니다.

public:
 property long MaxBufferPoolSize { long get(); void set(long value); };
public long MaxBufferPoolSize { get; set; }
member this.MaxBufferPoolSize : int64 with get, set
Public Property MaxBufferPoolSize As Long

속성 값

Int64

이 바인딩으로 구성된 엔드포인트에서 사용하는 버퍼 풀의 최대 크기(바이트)입니다. 기본값은 524288 바이트입니다.

예제

다음 예제에서는 MaxBufferPoolSize를 설정하는 방법을 보여 줍니다.

binding.MaxBufferPoolSize = 900000;
binding.MaxBufferPoolSize = 900000

설명

BufferManager는 버퍼 풀을 사용하여 버퍼 사용 비용을 최소화합니다. 버퍼는 메시지가 채널에서 나올 때 서비스를 이용하여 그 메시지를 처리해야 합니다. 버퍼 풀에 메시지 로드를 처리하기에 충분한 메모리가 없는 경우 BufferManager에서는 CLR 힙으로부터 추가 메모리를 할당해야 하며, 따라서 가비지 수집 오버헤드가 증가합니다. CLR 가비지 힙으로부터 다량의 할당이 이루어지는 경우 버퍼 풀 크기가 너무 작은 것이므로, MaxBufferPoolSize 제한을 늘려 더 크게 할당하면 성능이 향상될 수 있습니다.

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

적용 대상