다음을 통해 공유


BasicHttpBinding.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(0x80000)바이트입니다.

예제

다음은 이 속성을 기본값의 두 배로 설정하는 예제입니다.

BasicHttpBinding binding = new BasicHttpBinding();
// Use double the default value
binding.MaxBufferPoolSize = 0x80000 * 2;

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

<configuration>
  <system.serviceModel>

    <bindings>
      <basicHttpBinding>
        <binding name="Binding1">

          <!-- set pool size to double default of 0x80000 -->
          maxBufferPoolSize = 0x100000

          <security mode="None" />
        </binding>
      </basicHttpBinding>
    </bindings>

  </system.serviceModel>

</configuration>

설명

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

적용 대상