|
NAMEDevel::Gladiator - Walk Perl's arenaVERSIONversion 0.08SYNOPSISuse Devel::Gladiator qw(walk_arena arena_ref_counts arena_table); my $all = walk_arena(); foreach my $sv ( @$all ) { warn "live object: $sv\n"; } warn arena_table(); # prints counts keyed by class # how to spot new entries in the arena after running some code use Devel::Gladiator qw(walk_arena); my %dump1 = map { ("$_" => $_) } @{walk_arena()}; # do something my %dump2 = map { $dump1{$_} ? () : ("$_" => $_) } @{walk_arena()}; use Devel::Peek; Dump \%dump2; DESCRIPTIONDevel::Gladiator iterates Perl's internal memory structures and can be used to enumerate all the currently live SVs.This can be used to hunt leaks and to profile memory usage. EXPORTSwalk_arenaReturns an array reference containing all the live SVs. Note that this will include a reference back to itself, so you should manually clear this array (via "@$arena = ()") when you are done with it, if you don't want to create a memory leak.arena_ref_countsReturns a hash keyed by class and reftype of all the live SVs.This is a convenient way to find out how many objects of a given class exist at a certain point. arena_tableFormats a string table based on "arena_ref_counts" suitable for printing.LIMITATIONSThis code may not work on perls 5.6.x and 5.8.x if PadWalker is installed. (Patches gratefully accepted!)SEE ALSO
SUPPORTBugs may be submitted through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=Devel-Gladiator> (or bug-Devel-Gladiator@rt.cpan.org <mailto:bug-Devel-Gladiator@rt.cpan.org>).AUTHORArtur Bergman <sky@apple.com>CONTRIBUTORS
COPYRIGHT AND LICENCEThis software is copyright (c) 2006 by Artur Bergman.This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Visit the GSP FreeBSD Man Page Interface. |