in reply to Re^4: Detecting memory leaks.
in thread Detecting memory leaks.

If you have one circular references, you probably have more ... try Devel::Cycle/Devel::Leak

Replies are listed 'Best First'.
Re^6: Detecting memory leaks.
by Steve_BZ (Chaplain) on May 05, 2015 at 07:09 UTC

    Hi Anon,

    I'm looking at the synopsis for Devel::Leak,

    use Devel::Leak; ... setup code my $count = Devel::Leak::NoteSV($handle); ... code that may leak Devel::Leak::CheckSV($handle);

    What is $handle

    Regards

    Steve

      I'm looking at the synopsis for Devel::Leak, ... What is $handle

      Its a scalar :p

      use Devel::Leak; warn Devel::Leak::NoteSV(my $handle); {my$a={};$a->{a}=$a;} warn Devel::Leak::CheckSV($handle ); __END__ 6599 at - line 2. new 003F9A6C : new 003F9B1C : 6601 at - line 4.

        Hi Anon,

        Ok, I ran it and I get a huge list of stuff like this:

        new 0x492bdd8 : new 0x36031a0 : new 0x2930a58 : new 0x2909af8 : old (1): 0 old (1): 0 old (1):

        I guess they are new octal addresses. The counts seem very high, this is what I get:

        my $mu = Memory::Usage->new(); $mu->record('before add appointment'); my $count1 = Devel::Leak::NoteSV(my $handle); __new_appointment($self1, $event1); my $count2 = Devel::Leak::CheckSV($handle ); print $count1, "\n"; print $count2, "\n"; print $count2-$count1, "\n"; $mu->record('after add appointment'); $mu->dump(); __END__ 595269 596072 803 time vsz ( diff) rss ( diff) shared ( diff) code ( diff) + data ( diff) 0 772200 ( 772200) 195796 ( 195796) 43708 ( 43708) 8 ( + 8) 369168 ( 369168) before add appointment 33 794160 ( 21960) 217104 ( 21308) 43972 ( 264) 8 ( +0) 390508 ( 21340) after add appointment

        How can I track down these addresses?

        It's a bit above my pay grade!

        Regards

        Steve.