Pomyślałem, że przyniosę więcej danych do dyskusji.
Przeprowadziłem serię testów w tej sprawie.
Używając resource
pakietu python , uzyskałem wykorzystanie pamięci przez mój proces.
Zapisując csv w StringIO
buforze, mogłem łatwo zmierzyć jego rozmiar w bajtach.
Przeprowadziłem dwa eksperymenty, z których każdy utworzył 20 ramek danych o rosnących rozmiarach od 10 000 do 1 000 000 wierszy. Obie mają 10 kolumn.
W pierwszym eksperymencie użyłem tylko liczb zmiennoprzecinkowych w moim zbiorze danych.
W ten sposób pamięć wzrosła w porównaniu z plikiem csv jako funkcja liczby wierszy. (Rozmiar w megabajtach)
W drugim eksperymencie miałem takie samo podejście, ale dane w zbiorze danych składały się tylko z krótkich ciągów.
Wygląda na to, że zależność między wielkością csv a rozmiarem ramki danych może się znacznie różnić, ale rozmiar w pamięci zawsze będzie 2-3 razy większy (dla rozmiarów ramek w tym eksperymencie)
Chciałbym uzupełnić tę odpowiedź o więcej eksperymentów, proszę o komentarz, jeśli chcesz, żebym spróbował czegoś specjalnego.
top
, a następnieShift + M
uporządkować moje zużycie pamięci.