Ich habe festgestellt, dass es in einem Python-Skript ein Speicherleck gibt. Was zuerst 25MB belegte und nach 15 Tagen mehr als 500 MB.
Ich habe viele verschiedene Wege eingeschlagen und bin nicht in der Lage, wie ein Python-Neuling in die Wurzel des Problems zu kommen ...
Endlich habe ich folgendes bekommen
%Vor%Ich setze einen Unterbrechungspunkt, und nach jeder Iteration ist das was passiert ...
%Vor%Was ist der beste Weg, um fortzufahren?
%Vor%Ich denke, alle Tupel auszudrucken und zu überprüfen - was diese 10 Tupel jedes Mal hinzugefügt werden, gibt mir einen Hinweis? Bitte lassen Sie mich wissen, wie das geht.
Oder gibt es eine andere Möglichkeit, dieses Speicherleck herauszufinden. Ich benutze Python 2.4.3, und wegen vieler anderer Produktabhängigkeiten - Leider kann / sollte ich nicht upgraden.
Lies ich richtig, dass das gleiche Skript 15 Tage non-stop läuft?
Für solche langwierigen Prozesse ist ein periodischer Neustart eine gute Übung, und es ist viel einfacher, als alle Speicherlecks zu beseitigen.
Aktualisieren : Sehen Sie sich diese Antwort , es scheint genau das zu tun, was Sie brauchen - drucken Sie alle neu hinzugefügten Objekte, die nicht als Müll gesammelt wurden.
Mein erster Gedanke ist, wahrscheinlich erstellen Sie neue Objekte in Ihrem Skript und sammeln sie in einer Art globaler Liste. Es ist normalerweise einfacher, über Ihr Skript zu gehen und sicherzustellen, dass Sie keine dauerhaften Daten generieren, als den Müll zu debuggen. Ich denke, das Dienstprogramm, das Sie verwenden, objgraph, ermöglicht es Ihnen auch, das Garbage-Objekt mit der Anzahl der Verweise darauf zu drucken. Du könntest es versuchen.
Tags und Links python memory-leaks