Catalyst-Controller-LeakTracker
view release on metacpan or search on metacpan
lib/Catalyst/Controller/LeakTracker.pm view on Meta::CPAN
use Moose;
our $VERSION = "0.08";
use Data::Dumper ();
use Devel::Cycle ();
use Devel::Size ();
use Tie::RefHash::Weak ();
use YAML::XS ();
use Scalar::Util qw(weaken);
use namespace::clean -except => "meta";
{
package Catalyst::Controller::LeakTracker::Template;
use Template::Declare::Tags 'HTML'; # conflicts with Moose
}
my $size_of_empty_array = Devel::Size::total_size([]);
lib/Catalyst/Controller/LeakTracker.pm view on Meta::CPAN
$n = 300 if $n > 300;
for ( 1 .. $n ) {
my $object = bless {}, "class::a";
$object->{foo}{self} = $object;
}
my $object2 = bless {}, "class::b";
$object2->{foo}{self} = $object2;
weaken($object2->{foo}{self});
my $object3 = bless [], "class::c";
push @$object3, $object3, map { [ 1 .. $n ] } 1 .. $n;
$c->res->body("it leaks " . ( $n + 1 ) . " objects");
}
__PACKAGE__;
__END__
( run in 0.323 second using v1.01-cache-2.11-cpan-65fba6d93b7 )