sub package_size_report { my $package = shift ; eval('require B::TerseSize') ; if ( $@ ) { return "You need to have installed B::TerseSize (from B: +:Size) to use &package_size!" ;} my $output ; $output .= "Memory Usage for package $package\n\n" ; my($subs, $opcount, $opsize) = B::TerseSize::package_size($package); $output .= "Totals: $opsize bytes | $opcount OPs\n\n" ; my($clen, $slen, $nlen); my @keys = map { $nlen = length > $nlen ? length : $nlen; $_; } ( sort { $subs->{$b}->{size} <=> $subs->{$a}->{size} +} keys %$subs ); $clen = length $subs->{$keys[0]}->{count} ; $slen = length $subs->{$keys[0]}->{size} ; for my $name (@keys) { my $stats = $subs->{$name}; if ($name =~ /^my /) { $output .= sprintf("%-${nlen}s %${slen}d bytes\n", $name, $stats +->{size}) ; } else { $output .= sprintf("%-${nlen}s %${slen}d bytes | %${clen}d OPs\n +", $name, $stats->{size}, $stats->{count} ) ; } } return $output ; }
In reply to Package memory usage by gmpassos
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |