4
在調查長時間運行的perl程序內存泄漏時,我嘗試使用Test::LeakTrace。來自匹配運算符的Perl內存泄漏
看着它報告我可以縮小泄漏的代碼只是泄漏的一個:那麼運行
/$?/
:perl -MTest::LeakTrace::Script -e'/$?/'
打印:
泄露從-e線1標量(0x10d3d48)。
爲什麼這是我需要擔心的嗎?
更新:也試過Devel::LeakTrace::Fast,它不抱怨相同的代碼。
'測試:: LeakTrace'簡化版,像正則表達式: perl的-MTest :: LeakTrace ::腳本-E '我的正則表達式$ = QR/ABC /' 泄露從-e 1號線陣列(0x193cd80) 從-e行1泄露HASH(0x195d730)。 從-e行1泄露SCALAR(0x195d700)。 –
@MarcoDeLellis所以你認爲這是Test :: LeakTrace中的一個錯誤? – Zitrax
我沒有任何錯誤int模塊的證明,但它讓我思考誤報。也許在你的代碼中有循環引用,或者有一箇舊的模塊版本泄漏內存,因爲它發生了[對我](http://stackoverflow.com/questions/6438266/memory-leaks-in-listmoreutils-each- array-and-each-arrayref)。 –