Python - Praca z wyciekami pamięci

Mam program Pythona, który uruchamia serię eksperymentów, bez żadnych danych przeznaczonych do przechowywania od jednego testu do drugiego. Mój kod zawiera wyciek pamięci, którego całkowicie nie mogę znaleźć (patrzę nainne wątki na wycieki pamięci). Ze względu na ograniczenia czasowe musiałem zrezygnować ze znalezienia wycieku, ale gdybym był w stanie wyizolować każdy eksperyment, program prawdopodobnie działałby wystarczająco długo, aby uzyskać potrzebne rezultaty.

Czy uruchomienie każdego testu w osobnym wątku pomoże?Czy są jakieś inne metody izolowania skutków wycieku?

Szczegóły dotyczące konkretnej sytuacji

Mój kod składa się z dwóch części: biegacza eksperymentu i rzeczywistego kodu eksperymentu.Chociaż żadne kody globalne nie są dzielone między kodem do uruchamiania wszystkich eksperymentów i kodem używanym przez każdy eksperyment, niektóre klasy / funkcje są koniecznie dzielone.Biegacz eksperymentu to nie tylko prosta pętla for, którą można łatwo umieścić w skrypcie powłoki. Najpierw decyduje o testach, które należy wykonać, biorąc pod uwagę parametry konfiguracyjne, a następnie uruchamia testy, a następnie przekazuje dane w określony sposób.Próbowałem ręcznie wywołać garbage collector na wypadek, gdyby problem polegał na tym, że nie można było uruchomić zbierania śmieci, ale to nie zadziałało

Aktualizacja

Odpowiedź Gnibblera rzeczywiście pozwoliła mi odkryć, że moje obiekty ClosenessCalculation, które przechowująwszystko danych użytych podczas każdego obliczenia nie są zabijane. Następnie użyłem tego do ręcznego usunięcia niektórych linków, które prawdopodobnie rozwiązały problemy z pamięcią.

questionAnswers(4)

yourAnswerToTheQuestion