Condividi tramite


BasicHttpBinding.MaxBufferPoolSize Proprietà

Definizione

Ottiene o imposta la quantità massima di memoria, in byte, allocata al gestore dei buffer che riceve i messaggi dal canale.

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

Valore della proprietà

Int64

Quantità massima di memoria, espressa in byte, allocata al gestore dei buffer dei messaggi. Il valore predefinito è 524.288 (0x80000) byte.

Esempio

Nell'esempio seguente questa proprietà viene impostata su un valore doppio rispetto a quello predefinito.

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

Il valore di questa proprietà può essere impostato anche nel file di configurazione.

<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>

Commenti

Il gestore BufferManager utilizza un pool di buffer per ridurre al minimo il costo legato all'utilizzo dei buffer. I buffer sono necessari per elaborare i messaggi provenienti dal servizio quando arrivano dal canale. Se la memoria allocata al pool di buffer per elaborare il carico dei messaggi risulta insufficiente, il gestore BufferManager deve attingere all'heap CLR per allocare memoria aggiuntiva, il che aumenta l'overhead del processo di garbage collection. L'allocazione estesa dall'heap di Garbage CLR è un'indicazione che le dimensioni del pool di buffer sono troppo piccole e che le prestazioni possono essere migliorate con un'allocazione più grande aumentando il limite MaxBufferPoolSize.

Si applica a