Witam,
chciałem się zapytać jakie znacie najbardziej wydajne sposoby wczytywanie dużych ilości danych do pamięci?
Mam dość duży plik tekstowy z poukładanymi danymi różnych typów i niestety z różnymi separatorami. Pierwszy wiersz to nazwy kolumn. Pozostałe to dane, które mnie interesują.
Danych jest dużo (> 1GB). Chcę wszystko jak najszybciej wrzucić do pamięci do przygotowanej struktury na każdą zmienną.
Niestety metodą getline zajmuje to zbyt dużo czasu! Czy znacie inne wydajne sposoby?
Z góry dzięki za pomoc.
0
0
Użyj mapowania plików. http://msdn.microsoft.com/en-us/library/windows/desktop/aa366556%28v=vs.85%29.aspx
0
Wczytuj dużymi kawałkami.
0
No właśnie oba te sposoby wydają się niezbyt wygodne. No nic, zobaczymy co da się z tym zrobić ;-)
0
Wczytujesz za pomocą ifstream
?
0
_13th_Dragon napisał(a):
Wczytujesz za pomocą
ifstream
?
Tak, ifstream a później istringstream
0
Przede wszystkim, czy naprawdę potrzebujesz ładować na raz cały plik do pamięci? Nie wydaje mi się. Zrób, tak jak wspomniał @spartanPAGE.
Ewentualnie użyj file mappingu (o czym wspomniał już @ly000). Jeśli działasz na unixie to użyj funkcji nmap.