netcdf4-python: Speicher steigt mit zahlreichen Aufrufen, um Daten vom netcdf-Objekt zu trennen

9

Ich versuche, Datenscheiben aus einer netcdf4-Datei mit netcdf4-python zu lesen. Dies ist das erste Mal, dass ich Python benutze und ich habe Probleme mit dem Speicher. Im Folgenden finden Sie eine vereinfachte Version des Codes. Bei jeder Iteration springt der Schleifenspeicher um das Äquivalent der Datenscheibe, die ich gelesen habe. Wie kann ich den Speicher bereinigen, während ich über jede Variable iteriere?

%Vor%     
user2870145 11.10.2013, 08:22
quelle

1 Antwort

1

Ich denke, das Problem ist eine Fehlinterpretation von del a Bedeutung.

Laut Python-Sprachreferenz :

  

Durch das Löschen eines Namens wird die Bindung dieses Namens aus dem lokalen oder globalen Namespace entfernt, je nachdem, ob der Name in einer globalen Anweisung im selben Codeblock auftritt.

Das bedeutet, dass del a die a-Variable dereferenziert. Dies bedeutet jedoch nicht, dass der Speicher sofort freigegeben wird. Dies hängt davon ab, wie der Garbage Collector funktioniert. Sie können den Garbage Collector bitten, neuen Müll mit der Methode collect () zu sammeln:

%Vor%

Dieser verwandte Beitrag kann nützlich sein.

    
SimoV8 19.08.2015 15:16
quelle