perl DBI-Speicherverlust

8

Ich habe einige Speicherprobleme in einem Perl-Skript, das ich über längere Zeiträume laufen habe, wo die Menge an Speicher, die Perl verbraucht, einfach weiter wächst. Aus diesem Grund versuche ich, Devel :: Leak zu verfolgen das Leck runter. Ich habe festgestellt, dass, wenn ich die Methode prepare von DBI DBI aufruft, die Anzahl der von Devel::Leak zurückgegebenen skalaren Werte um eins zunimmt . Unten ist ein Testskript, das ich zusammengestellt habe, das tut, was ich beschreibe:

%Vor%

Gibt es etwas, das ich hier falsch mache, oder ist das ein Speicherleck im DBI-Modul? Außerdem weiß ich, dass das Hinzufügen eines SV jedes Mal um die Schleife keine große Sache ist, und dass ich höchstwahrscheinlich größere Speicherlecks an anderer Stelle habe, die Perl veranlassen, so viel von dem Speicher des Servers zu nehmen. Allerdings würde ich das gerne reparieren, wenn ich könnte. Coders Neugier:)

UPDATE:

Beim ersten Mal scheint es etwa 3.000 SVs hinzuzufügen, und jedes Mal steigt es dann um eins nach oben.

    
srchulo 12.11.2012, 04:16
quelle

1 Antwort

5

Es gibt eine Instanz von DBI :: dr (ein gesegneter Hash), die bei $ DBI :: lasth lebt. Überprüfen Sie den ChildHandles-Schlüssel.

%Vor%     
ddoxey 02.12.2012, 04:54
quelle

Tags und Links