in reply to Perl Threads and Memory Leaking

On win, I see a slow creep up of memory usage for the first few thousand iterations, but it then stabilises and stays rock steady for tens of thousands more:

#!/usr/bin/perl use Thread; use Time::HiRes qw(usleep); my $count = 0; while( 1 ) { usleep(100); my $thr1 = new Thread \&doNothing; $thr1->join; unless( ++$count % 1000 ) { printf "%3d: %s", $count, ( qx[tasklist /fo list /fi "pid eq $$"] )[ 5 ]; } } sub doNothing {} __END__ C:\test>junk 1000: Mem Usage: 11,576 K 2000: Mem Usage: 11,752 K 3000: Mem Usage: 11,880 K 4000: Mem Usage: 11,944 K 5000: Mem Usage: 12,544 K 6000: Mem Usage: 12,544 K 7000: Mem Usage: 12,544 K 8000: Mem Usage: 12,544 K 9000: Mem Usage: 12,544 K 10000: Mem Usage: 12,544 K 11000: Mem Usage: 12,544 K 12000: Mem Usage: 12,544 K 13000: Mem Usage: 12,544 K 14000: Mem Usage: 12,544 K 15000: Mem Usage: 12,544 K 16000: Mem Usage: 12,544 K 17000: Mem Usage: 12,544 K 18000: Mem Usage: 12,544 K 19000: Mem Usage: 12,544 K 20000: Mem Usage: 12,544 K 21000: Mem Usage: 12,544 K 22000: Mem Usage: 12,544 K 23000: Mem Usage: 12,544 K 24000: Mem Usage: 12,544 K 25000: Mem Usage: 12,544 K 26000: Mem Usage: 12,544 K 27000: Mem Usage: 12,544 K 28000: Mem Usage: 12,544 K 29000: Mem Usage: 12,544 K 30000: Mem Usage: 12,544 K 31000: Mem Usage: 12,544 K 32000: Mem Usage: 12,544 K 33000: Mem Usage: 12,544 K Terminating on signal SIGINT(2)

If there's a leak, it appears to be platform specific.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP PCW It is as I've been saying!(Audio until 20090817)