[LON-CAPA-dev] Math::Complex won't be in 2.1
Guy Albertelli II
lon-capa-dev@mail.lon-capa.org
Thu, 8 Dec 2005 13:44:07 -0500 (EST)
Hi Jeremy,
> I replicated your results on my machine, and this stops the leak on my
> machine:
Thanks! This will definately make things possible.
But I'm still seeing a small leak with this and perl 5.8.6 (about a
meg every 1000 iterations.)
That I can live with though.
>
> use Safe;
> use Symbol;
> use Devel::Symdump;
>
> my $i=0;
> while (1)
> {
> my $safe = new Safe;
> $safe->deny_only(':dangerous');
> $safe->reval('use Math::Complex;');
> $i++;
> if ( $i%10 == 0 ) { print("$i\n"); }
> delete_package_recurse($safe->{Root});
> }
>
> sub delete_package_recurse
> {
> my $package = shift;
> my $Syms = Devel::Symdump->new($package);
> for my $subpackage (keys
> %{$Syms->{RESULT}->{$package}->{PACKAGES}})
> {
> delete_package_recurse($subpackage);
> }
>
> # print "Deleting $package\n";
>
> Symbol::delete_package($package);
> }
>
>
> But it's significantly slower; about 50%, even before you load other
> things into the Safe.
>
> You may not need full recursion in the package deletion, but I tried
> just deleting $safe->{Root}.'Math::Complex', .'Math', and the safe
> space, but that still seemed to leak. I couldn't find a constant set of
> packages I could delete.
>
> _______________________________________________
> LON-CAPA-dev mailing list
> LON-CAPA-dev@mail.lon-capa.org
> http://mail.lon-capa.org/mailman/listinfo/lon-capa-dev
>
--
guy@albertelli.com 0-7-1-9-27,137