Wydajne wczytywanie daneych z pliku

Odpowiedz Nowy wątek
2014-12-13 22:44
0

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.

Pozostało 580 znaków

2014-12-13 23:25
0

Użyj mapowania plików. http://msdn.microsoft.com/en-[...]op/aa366556%28v=vs.85%29.aspx

edytowany 1x, ostatnio: ly000, 2014-12-13 23:26

Pozostało 580 znaków

2014-12-14 00:07
0

Wczytuj dużymi kawałkami.

Pozostało 580 znaków

2014-12-14 00:41
0

No właśnie oba te sposoby wydają się niezbyt wygodne. No nic, zobaczymy co da się z tym zrobić ;-)

Pozostało 580 znaków

2014-12-14 03:18
0

Wczytujesz za pomocą ifstream?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-14 10:16
0
_13th_Dragon napisał(a):

Wczytujesz za pomocą ifstream?

Tak, ifstream a później istringstream

Pozostało 580 znaków

2014-12-14 10:52
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0