Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^2: A way to test that circular references are actually freed

by Jeffrey Kegler (Hermit)
on Oct 10, 2007 at 12:13 UTC ( #643935=note: print w/replies, xml ) Need Help??

in reply to Re: A way to test that circular references are actually freed
in thread A way to test that circular references are actually freed

Thanks for pointing me to Test::Memory::Cycle. It and Devel::Cycle (on which it's based) appear to work on a predictive basis. If they find no cycles, or only weakened ones, you could expect there to be no memory leaks.

The proposed Test::Weaken checks both before and after the fact to see that the memory was freed. It certainly would be useful in testing the other approach. :-)

I also now find a Devel::Leak, which actually looks at the Perl internals. However, it requires Perl to have been compiled with the -DDEBUGGING flag set, whereas Test::Weaken works on Perl compiled the ordinary way.

Perhaps which approach is best is a matter of specific situation and taste. I'd think the user would want to have modules implementing both approaches available in CPAN and to be able to take their choice. TIMTOWTDI and all that.

I do notice that Devel::Cycle can handle cycles that happen via references to closures, something my code doesn't at this point.

thanks, very helpful, jeffrey

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://643935]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2018-02-22 05:55 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (288 votes). Check out past polls.