I'll pull this back out over the weekend sometime and play around with it and run things against valgrind.
I'm not sure about properly written libperl applications (i.e. ones creating PerlInterpreter objects and not forgetting to call perl_destruct(my_perl); perl_free(my_perl); PERL_SYS_TERM(); afterwards), but perl itself is known to show leaks when checked by valgrind. As in,
$ valgrind perl -e1 2>&1 | grep definitely
==12501== definitely lost: 7,075 bytes in 15 blocks
Part of the reason for that might be to speed up termination: why bother calling free() if the process is going to die right now and the OS will pick up its resources anyway? But there are other possible reasons for valgrind to report a memory leak. |