Warum ist die Müllsammlung so langsam?

8

Profiling mein Code in IPython mit% Prun, habe ich festgestellt, dass die Mehrheit der Funktionszeit in Garbage Collection (0,334s vs. 0,428 Gesamtzeit) verbracht wird.

%Vor%

Ich habe versucht, die Garbage-Collection zu deaktivieren / aktivieren, bevor ich die Funktion aufruft und den Wert zurücksende, aber das Timing ist praktisch identisch.

%Vor%

Weiß jemand, warum dies ein solcher Engpass ist und wie man es beschleunigt?

Meine Python / Pandas-Versionen sind unten aufgeführt:

%Vor%     
Alexander 20.12.2015, 06:04
quelle

2 Antworten

0

Sie haben gc deaktiviert, so dass es möglicherweise etwas gibt, das explizit gc.collect aufruft. Sie können den Übeltäter möglicherweise finden, indem Sie diesen Trick in IPython verwenden:

%Vor%

Beachten Sie, dass es nur funktioniert, wenn der Code import gc hat, funktioniert es nicht mit from gc import collect (wir manipulieren das GC-Modul).

Bitte melden Sie einen Fehler, wenn Sie es herausfinden.

    
Stan Prokop 16.08.2016 19:07
quelle
0

Garbage Collection macht alles langsamer. Es macht auch alles viel weniger fehleranfällig.

Hier sind ein paar gute Artikel zu diesem speziellen Thema:

Python-Abfall
Nur langsam, wenn Sie es falsch verwenden

    
RFVenter 26.10.2016 12:48
quelle