Da ich gerade ein Programm erstelle, bei dem ich unter Umständen sehr viele (vielleicht vorerst vier- bis fünfstellige) Schreib- bzw. beim Einlesen einer Datei Lesezugriffe habe, stellt sich mir die Frage, was die bessere Lösung wäre:
-Über einen ByteWriter/-Reader und FileStream die Datei direkt Stück für Stück zu schreiben und lesen
-Beim Schreiben erst alles über einen ByteWriter in einen MemoryStream schreiben, dann den MemoryStream über WriteTo in einen FileStream schreiben und beim Lesen eben erst den Inhalt des FileStreams in einen MemoryStream schreiben und von dort aus auswerten
Vom Gefühl her würde ich sagen, dass die Zugriffe auf den MemoryStream wesentlich schneller wären, allerdings weiß ich nicht, inwiefern Schreibzugriffe auf eine Datei nicht zusammengefasst werden und so vielleicht aus (beispielsweise) tausend geschriebenen Integer-Werten doch nur ein Zugriff wird, wenn das wirklich direkt hintereinander geschrieben wird. Umgekehrt weiß ich nicht, ob diese unzähligen Lesezugriffe nicht vielleicht sowieso im Areitsspeicher landen würden, weil die Datei dort vielleicht so oder so zwischengespeichert wird.
Also: Was ist schneller, sehr viele Schreib-/Lesezugriffe auf eine Datei direkt oder das ganze über einen MemoryStream laufen zu lassen?
(Die Datenstücke sind tendenziell eher klein, hauptsächlich Integer-Werte und ein paar kurze Strings, sprich insgesamt würde sich die Dateigröße selbst bei größeren Dateien nur auf wenige MB belaufen)
Danke für eure Hilfe
-Über einen ByteWriter/-Reader und FileStream die Datei direkt Stück für Stück zu schreiben und lesen
-Beim Schreiben erst alles über einen ByteWriter in einen MemoryStream schreiben, dann den MemoryStream über WriteTo in einen FileStream schreiben und beim Lesen eben erst den Inhalt des FileStreams in einen MemoryStream schreiben und von dort aus auswerten
Vom Gefühl her würde ich sagen, dass die Zugriffe auf den MemoryStream wesentlich schneller wären, allerdings weiß ich nicht, inwiefern Schreibzugriffe auf eine Datei nicht zusammengefasst werden und so vielleicht aus (beispielsweise) tausend geschriebenen Integer-Werten doch nur ein Zugriff wird, wenn das wirklich direkt hintereinander geschrieben wird. Umgekehrt weiß ich nicht, ob diese unzähligen Lesezugriffe nicht vielleicht sowieso im Areitsspeicher landen würden, weil die Datei dort vielleicht so oder so zwischengespeichert wird.
Also: Was ist schneller, sehr viele Schreib-/Lesezugriffe auf eine Datei direkt oder das ganze über einen MemoryStream laufen zu lassen?
(Die Datenstücke sind tendenziell eher klein, hauptsächlich Integer-Werte und ein paar kurze Strings, sprich insgesamt würde sich die Dateigröße selbst bei größeren Dateien nur auf wenige MB belaufen)
Danke für eure Hilfe