Das ist wirklich nicht sehr wichtig.
Sicher, wenn Sie wirklich kleine Puffer verwenden, müssen Sie möglicherweise ein paar zusätzliche Aufrufe durch die Schichten machen, um die Bytes zu erhalten (obwohl der Stream wahrscheinlich zumindest einige Pufferung tut - ich weiß nicht, was es die Standardeinstellungen sind). Und sicher, wenn Sie wirklich große Puffer verwenden, werden Sie etwas Speicher verschwenden und eine Fragmentierung einführen. Da Sie offensichtlich tun IO hier, jede Zeit, die Sie durch Optimieren der Puffer gewinnen wird durch die IO-Zeit dominiert werden.
In der Regel wähle ich eine Zweierpotenz zwischen 2048 (2k) und 8192 (8k). Vergewissern Sie sich nur, dass Sie wissen, was Sie tun, wenn Sie einen Puffer von 85.000 Byte oder mehr wählen (es ist dann ein "großes Objekt" und unterliegt anderen GC-Regeln )
Noch wichtiger als die Größe des Puffers ist, wie lange man ihn hält. Bei Objekten außerhalb des großen Objektheaps kann die GC sehr gut mit sehr kurzlebigen Objekten (Gen 0-Sammlungen sind schnell) oder mit sehr langlebigen Objekten (Gen 2) umgehen. Objekte, die lange genug leben, um Gen 1 oder 2 zu erreichen, bevor sie freigegeben werden, sind vergleichsweise kostspieliger, und es lohnt sich normalerweise viel mehr, sich darüber Gedanken zu machen, als darüber, wie groß der Puffer ist.
Ein letzter Hinweis: Wenn Sie glauben, dass Sie aufgrund der Größe der verwendeten Puffer ein Leistungsproblem haben, Test es. Es ist zwar unwahrscheinlich, aber wer weiß, vielleicht haben Sie ein seltsames Zusammentreffen von Betriebssystemversion, Netzwerkhardware und Treiberversion, das ein seltsames Problem mit Puffern bestimmter Größe verursacht.