Speicherleck mit großem Dataset bei Verwendung von mysql-python

9

Ich erlebe, was ich glaube, ist ein Speicherverlust, wenn Sie die MySQLdb API verwenden

%Vor%

Auch beim Durchsuchen des Heap mit guppy / hpy zeigt es, dass der größte Teil meines Speichers von Unicode-Objekten, Ints und datetime-Objekten belegt ist (sehr wahrscheinlich werden Zeilen von der MySQLdb-API zurückgegeben).

Ich benutze Python 2.7.3, mysql-python==1.2.4 auf Ubuntu 12.04 und profiliert mit memory_profiler .

Könnte dies ein Praktikum sein, wie in Ссылка ?

Vermisse ich irgendwelche Referenzen, die herumhängen?

BEARBEITEN: Ich habe auch den Cursor und die Verbindung geschlossen, aber immer noch ähnliche Ergebnisse.

Gelöst: Facepalm. Ich machte ein Listenverständnis mit natürlich alles in Erinnerung. Wenn der Iterator richtig konsumiert wird (Streaming in eine Datei oder etwas), hat er eine angemessene Speichernutzung.

%Vor%     
Andrei Coman 14.06.2013, 14:20
quelle

1 Antwort

1

Gelöst vom OP. Sein ursprünglicher Code enthielt die Zeile

%Vor%

Dieses Listenverständnis speicherte das gesamte Ergebnis im Speicher, anstatt es bei Bedarf vom Server zu streamen. Das OP hat es durch ein einfaches

ersetzt %Vor%

und sah, wie seine Speicherbelegung wieder normal wurde.

    
Quuxplusone 03.06.2014 05:41
quelle

Tags und Links