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%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.