[Catalyst-dev] Need help debugging Text::ASCIITable
Andy Grundman
andy at hybridized.org
Mon Sep 26 16:33:56 CEST 2005
I've been trying to fix the leak in T::A but I'm totally stumped, and so
is the author. If anyone wants to take a crack at it, I've attached my
test script.
Run it from the module source directory as: perl -Iblib/lib t/12_leak.t
1..3
Initial memory use: 5345280
Final memory use: 8048640
not ok 1 - no memory leaks
# Failed test (t/12_leak.t at line 24)
# got: '8048640'
# expected: '5345280'
Initial memory use: 8048640
Final memory use: 8048640
ok 2 - no memory leaks
Initial memory use: 8048640
Final memory use: 8048640
ok 3 - no memory leaks
# Looks like you failed 1 tests of 3.
-Andy
-------------- next part --------------
#!perl
use strict;
use warnings;
use Test::More tests => 3;
use Text::ASCIITable;
use GTop;
use Scalar::Util qw(weaken);
my $gtop = GTop->new;
{
my $t = Text::ASCIITable->new;
my $initial = $gtop->proc_mem($$)->size;
warn "Initial memory use: $initial\n";
for ( 1..1000 ) {
my $x = Text::ASCIITable->new;
# should go out of scope...
}
my $final = $gtop->proc_mem($$)->size;
warn "Final memory use: $final\n";
is( $final, $initial, 'no memory leaks' );
}
# test with undef'ing the tiedarr
{
my $t = Text::ASCIITable->new;
my $initial = $gtop->proc_mem($$)->size;
warn "Initial memory use: $initial\n";
for ( 1..1000 ) {
my $x = Text::ASCIITable->new;
undef $x->{tiedarr};
}
my $final = $gtop->proc_mem($$)->size;
warn "Final memory use: $final\n";
is( $final, $initial, 'no memory leaks' );
}
# test with weaken
{
my $t = Text::ASCIITable->new;
my $initial = $gtop->proc_mem($$)->size;
warn "Initial memory use: $initial\n";
for ( 1..1000 ) {
my $x = Text::ASCIITable->new;
weaken( $x->{tiedarr} );
}
my $final = $gtop->proc_mem($$)->size;
warn "Final memory use: $final\n";
is( $final, $initial, 'no memory leaks' );
}
More information about the Catalyst-dev
mailing list