Dateien vs. Performance
-
Hallo,
ich habe gehört, dass sich alle Objekte referenzieren lassen.
Wenn ich ein fstream-Objekt referenziere, kann ich dann wie gewoht damit arbeiten ? Also öffnen, suchen etc.
z.B. fstream orginal_file;
fstream & r_file = orginal_file;Was muss ich im Umgang mit Dateien beachten, damit diese aus Performancegründen direkt in den Hauptspeicher geladen werden müssen ?
Danke für Rat und Tat.
-
Original erstellt von <profiler>:
**ich habe gehört, dass sich alle Objekte referenzieren lassen.
...
Was muss ich im Umgang mit Dateien beachten, damit diese aus Performancegründen direkt in den Hauptspeicher geladen werden müssen ?
**1: Eine Referenz ist nur ein anderer Name für ein und das selbe. Warum sollten fstreams da was anderes sein??
2: IMHO - Datei via mmap() in den Speicher und dann via stringstream drauf zugreifen.
Bis dann...
Peanut
-
O.K.
Nur was ist mmap() ?!?!
-
fstream orginalfile("c:\\ref_test.dat",ios::out,ios::binary);
fstream &rfile = orginalfile;
rfile.open(); // Fehlermeldung bei close oder openWie ist es richtig ?
-
fstream orginalfile("c:\\ref_test.dat",ios::out,ios::binary);
Der Konstruktor von fstream öffnet die Datei doch schon. warum rufst du nochmal open auf?
Ich bin mir gar nicht sicher, ob du überhaupt Instanzen von fstream erstellen darfst... Warum nimmst du nicht ofstream?
-
Danke für deine Antwort. Ich experimentiere mit Referenzen und Zeigern, um zu erkennen, welche Möglichkeiten zur Performancesteigerung vorhanden sind. In C wird beim Dateihandling doch auch mit Zeigern gearbeitet.
Oder sind die Geschichten in C++ schon dahingehend optimiert ?Ich bekomme in C++ keine korrekte Syntax hin.
-
Ähm,
laut C++ ist eine Referenz fstream& nix anderes als ein Namensersatz, womit z.B. die Schreibweise
c->x->y->memberStream. ... durch
fstream& fs = c->x->y->memberStream;
fs. ...;
ersetzt werden kann.
Dabei ist keine Performancesteigerung möglich.Etwas anderes ist es, wenn von kleinen, globalen Objekten innerhalb einer Funktion eine lokale Kopie angelegt wird.
-
Das heißt also, daß die Verwendung von Referenzen oder Zeigern nicht notwendig ist.
Beim Handling mit Dateien werden keine internen Kopien angelegt die man damit verhindern könnte !?