Frage

Die MSDN-Website heißt es:

  

Ein Puffer ist ein Block von Bytes im Speicher   In den Cache-Daten verwendet wird, wodurch   die Anzahl der Anrufe an das Betriebs   System. Puffer improve lesen und schreiben   Performance. Ein Puffer kann verwendet werden für   entweder das Lesen oder Schreiben, aber nie   beide gleichzeitig. Das Lesen und   Schreiben Methoden der BufferedStream   automatisch den Puffer erhalten.

Soll ich diese Klasse in jeder möglichen Gelegenheit?

War es hilfreich?

Lösung

Hier finden Sie einige Texte aus einem Online-Kurs Ich nehme:

  

Die BufferedStream Klasse ist eine konkrete   Klasse, die die Stream-Klasse erweitert   und wird verwendet, um eine zusätzliche bereitzustellen   Speicherpuffer zu einer anderen Art von   Strom, die beide synchron und   asynchron. die BufferedStream   Klasse muss konfiguriert werden, um entweder   lesen oder schreiben, wenn eine Instanz der   Klasse wird erstellt, aber die   BufferedStream kann nicht so konfiguriert werden,   führen sowohl die Aufgaben zur gleichen   Zeit.

     

Microsoft verbessert die Leistung von   alle Ströme in .NET Framework durch   einschließlich einem eingebauten Puffer. Das   Leistung merklich verbessert, indem   Anlegen eines BufferedStream an bestehende   Ströme, wie beispielsweise ein Filestream oder   Memory. Anwenden einer   BufferedStream zu einem bestehenden .NET   Rahmenstrom führt zu einer Doppel   Puffer.

     

Die häufigste Anwendung der   BufferedStream Klasse ist in benutzerdefinierten   Stream-Klassen, die nicht enthalten ein   Einbau-Puffer.

Andere Tipps

Nach Brad Abrams, so gut wie nie: Link

  

Nein, es gibt null profitiert von einem BufferedStream Umwickeln eines   Datenfluss. Wir kopiert BufferedStream die Pufferlogik in   Filestream vor etwa 4 Jahren besser Standard zu fördern   Leistung ... In der Tat, ich glaube nicht, gibt es keinen Streams in der   .NET Framework, die es erfordern, aber es könnte durch die Gewohnheit benötigt werden   Stream-Implementierungen, wenn sie das nicht tun Pufferung standardmäßig aktiviert.

Im besten Fall ich kenne ist, wenn BinaryFormatter serialisieren / deserialisieren direkt von Network. Die Verwendung von BufferedStream Inbetween erhöhen die Leistung verzehnfacht.

Was muss sein in jeder möglichen Gelegenheit verwendet wird, ist der gesunde Menschenverstand. Es hat keinen Zweck, diese Klasse in Verwendung beim Lesen-Schreiben zu von einem Memorystream, aber es könnte sehr nützlich sein, wenn IO-Netzwerk oder Festplatte zu tun (wenn Streams für diese Subsysteme nicht Pufferung tun auf ihrem eigenen).

Die normale Datei-I / O-Streams bereits gepuffert wird durch die Verwendung eines Stream / Stream.

Da Lese- / Schreiboperationen auf Ströme, verwenden Sie normalerweise die Read / Write-Methoden, die ein Byte-Array nehmen, werden Sie natürlich einige selbst Pufferung bieten.

Wenn Sie sehr kleine Arrays verwenden oder Verwendung WriteByte, könnte man eine bessere Leistung erhalten, indem eine BufferedStream dazwischen verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top