std::fstream und große datenmengen



  • wie funkioniert std::fstream wenn ich damit dateien einlesen will?
    werden die daten nach dem öffnen in den speicher des programms geladen oder greift man auf dateien über die festplatte zu?
    wenn ersteres der fall ist, wie gehe ich dann mit größeren datenmengen um (500mb) die evtl. nicht mal in den arbeitspeicher passen?



  • Das dürfte stark von der std::fstream-Implementierung abhängen. Eine Bufferung wird definitiv genutzt werden, aber wie genau das aussieht sollte in der Implementierung der von dir genutzten Standard Library stehen. (und ohnehin werden 500MB wohl in den Arbeitsspeicher passen, wenn die Auslagerungsdatei groß genug ist...)



  • das problem ist eigentlich eher die zeit die eine bufferung von 500mb beansprucht.
    stell dir vor ich hab ein 500mb archiv und will eigentlich nur ein 1mb großes bild laden, das sich in dem archiv befindet.



  • Man kann sich wohl darauf verlassen, dass die STL-Implementierung nicht so doof ist, standardmäßig 500 MiB große Buffer zu verwenden.


Anmelden zum Antworten