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 限制来提高性能,

适用于