I just wanted to give the list an update on my recent  exploits

Devel::Cycle
        Find memory cycles in objects
        pro:
                easy to integrate into mp2 handlers.
        con:
it only detects one type of leak , which most people avoid creating in the first place

Devel::Leak
        Utility for looking for perl objects that are not reclaimed
        pro:
                easy to integrate into mp2 handlers
        con:
Note that you need a perl built with -DDEBUGGING for sv_dump() to print anything, but counts are valid in any perl.

Devel::LeakTrace
        Indicate where leaked variables are coming from
        con:
I haven't been able to get this to work with mod_perl, as the persistent environment is a bit counterintutive

Devel::LeakObject
        Detect leaks of objects
        con:
                this seems to do nothing in a persistent environment

Devel::GC::Helper
        con:
                doesn't work with DBI installed
        

Dev'ing on OSX is a PITA. many things won't compile right, the bsd layer by apple is severely crippled ( getrusage barely works, with 1/3 the functionality of what it should have. misc. terminal commands like 'top' are similar )


Personally, I found this behavior (approximate) using Devel::Leak:

Starting out my server, i have this many 'objects' when i hit a fairly static page (run through template engine, but nothing dynamic changes )
        197913

I hit reload
        +20

I hit reload
        +10

I hit reload
        + 7

I hit reload thereafter
        +1

To me, it seems the +40 etc from the large growths are normal. the +1 however looks to be a leak to me. hopefully i can track that sucker down and end this nightmare.

Reply via email to