V
Es wurde an sich alles gesagt.
Ob man 4k oder mehr haben mag, sollte man ausmessen.
Normalerweise gehen die Messungen so aus:
Bis 2k sieht man deutlich, daß größere Blöcke besser sind. 2k oder 4k sind schon knapp, aber man sieht es noch, wenn man genau hinguckt. Über 4k sind sogar noch schneller, aber im Bereich weniger Promille, da habe ich ein schlechtes Gewissen den anderen Anwendugen gegenüber, denen ich Speicher wegnehme.
Bei 64-Bittern nehme ich 8k. Sonst 4k.
Alles auf einmal mag ich nicht einlesen, weil ich dazu vorher beim Einlesen warten muß, bis alles da ist, und erst später mit der Verarbeitung anfangen darf. Normale f-Funktionen erlauben es mir, das zu verschränken, zu geringen Kosten, dem immerwährenden if(amEndeSchon) readNexBuffer();. Die sind aber sehr klein.
Mit OS-spezifischen Funktionen mmap oder CreateFileMapping kriegt man dieses if sogar noch weg. Aber auch das ist kaum messbar.