次の方法で共有


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) バイトです。

次の例では、このプロパティを既定値の 2 倍に設定します。

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 の制限を増やすことで、より大きな割り当てでパフォーマンスを向上できることを示しています。

適用対象