Ich frage mich aber, ist das eigentlich sinnvoll, den Cache hier zu umgehen? In meinem Szenario werden die Dateien nicht nochmal eingelesen, der Cache würde also keinen Vorteil bringen.
Es kommt darauf an
wann die Dateien mehrmals gelesen werden, wenn zwischendurch der FileCache übergelaufen ist und der letzte Leseversuch schon weg ist, dann bringt der FileCache es absolut garnichts, außer dass durchs Auslagern deines und der anderen Programme alles Andere langamer wird.
Also ohne Cache ist es "meißtens" besser und du mußt das durch optimieren der restlichen Funktionen verbessern,
Also muß eine Datei wirklich mehrmals komplett gelesen werden? (z.B. erstmal Haschen und für den Erstvergleich zweier Dateien erstmal die Hashs verwenden, anstatt jedesmal wieder auf den Dateiinhalt zuzugreifen)
PS: Die Dateisystemtreiber arbeiten mit 64 KB als Transferpuffer (rate mal warum im Speicher zufällig der erste Speicherblok von $00000000 bis $0000FFFF gespert ist und wofür der z.B. verwendet wird).
Ja, Nonbuffered muß man mit dem Mehrfachen der Sektorgröße abeiten, da nur komplette Sektoren gelesen und vorallem geschrieben werden können. Und um die IOPs zu optimieren nimmt man dann ein Mehrfaches sämtlicher durchlaufener Puffer/Caches.
SearchSameFiles