Also es ist schon möglich festzulegen, daß bestellter Speicher ausschließlich im
RAM liegt und nicht ausgelagert wird (in der Pagefile landet), aber mit sowas sollte man vorsichtig sein, da so ja schnell der physische Speicher voll sein kann.
Bei 20 MB wäre es gut möglich, daß Teile davon ausgelagert werden (schau einfach mal in den Taskmanager unter Seitenfehler ... jeder Speicherblock, welcher vom Programm verlangt wird und erst aus der Pagefile rausgeholt werden muß, wird da gezählt).
Ansich ist Hagens Vorschlag nicht schlecht, da dort nur geringe Anteile der Datei tatsächlich im Speicher liegen ... halt nur die aktuell Benötigten.
8 KB paßt auch gut zur Festplatte, da dort meißtens (mehrere) ganze Cluster reinpassen, was ebenfalls eine Verbesserung mit sich bringt.
Dann würde es sich nicht schlecht machen, wenn du deinen Parser noch optimierst und dort auch mal mehr Bytes zusammen verarbeitest (nicht Byte für Byte einzeln).
Ein Umstellen von Stringoperationen auf Intergeroperationen bringt auch noch was.
(also statt String und Char lieber Byte, Word und Co.)