BasicHttpBinding.MaxBufferPoolSize 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
채널로부터 메시지를 수신하는 메시지 버퍼 관리자가 사용하도록 할당된 최대 메모리(바이트)를 가져오거나 설정합니다.
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
속성 값
메시지 버퍼 관리자가 사용할 수 있는 최대 메모리(바이트)입니다. 기본값은 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 제한을 늘려 더 큰 할당으로 성능을 향상시킬 수 있음을 나타냅니다.