WSDualHttpBinding.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 バイトです。
例
MaxBufferPoolSize
を設定する方法を次の例に示します。
binding.MaxBufferPoolSize = 900000;
binding.MaxBufferPoolSize = 900000
注釈
BufferManager は、バッファー プールを使用することで、バッファーの使用コストを最小化します。 バッファーは、チャネルから出てくるメッセージをサービスが処理するときに必要です。 メッセージの読み込み処理に十分なメモリがバッファー プールにない場合、BufferManager は、CLR ヒープから追加のメモリを割り当てる必要があります。これにより、ガベージ コレクションのオーバーヘッドが増加します。 CLR ガベージ ヒープから多大な割り当てが行われることは、バッファー プール サイズが小さすぎること、および MaxBufferPoolSize の制限を緩めて割り当てを増やすとパフォーマンスが向上する可能性があることを示します。
ここで設定されるバッファー サイズに対する制限は、メッセージ交換のパフォーマンスを最適化するためのものです。 メッセージがバッファーに設定された最大値を超える場合に、メッセージが失われることはありません。 この場合は、CLR ヒープからのメモリがより多く要求され、これによりバッファーの使用時よりも多くのガベージ コレクションのオーバーヘッドが生じます。