Hey,
ich habe ein C++-Programm geschrieben, welches u. a. Textdateien einliest.
Diese Dateien können schon mal bis zu 200 MB gross ein. Für das Dateihandling
habe ich die C-Datentypen (FILE, usw.) und C-Funktionen(fopen, fgets, fclose) verwendet.
Jetzt habe ich das gesamte Dateihandling auf C++ umgeschrieben, d.h. ich
habe mit ifstream und getline() gearbeitet. Beim testen ist mir aber aufgefallen,
dass die Stream-Variante viel langsamer ist als die C-Version.
Ich habe mal die Zeiten gemessen, die die zwei Versionen benötigen um eine
1,6 MB grosse ASCII-Datei einzulesen. Ich habe nur die Zeiten für das eigentliche
einlesen gemessen:
C-Version: 0,02 Sekunden
Stream-Version: 2,28 Sekunden
Ist das immer so das Datei-Streams langsamer sind? Hab bis jetzt immer
mit den C-Datentypen gearbeitet.
Hier mal der Code für das einlesen (Stream):
Code:ifstream file; string strBuffer; . . while(!file.eof()) { getline(file, strBuffer, '\n'); }
Lesezeichen