81e4a885fe5ca6074584f34155b7221c0e650b17
[p5sagit/Devel-Size.git] / lib / Devel / SizeMe.pm
1 package Devel::SizeMe;
2
3 require Devel::Memory;
4
5 my $gz = (0) ? "gzip -c | gzip -dc |" : ""; # currently saves ~3%
6 $ENV{SIZEME} = "| $gz sizeme_store.pl -d --text --dot=sizeme.dot --showid --db=sizeme.db";
7
8 my $do_size_at_end = 0; # set true below for "perl -d:SizeMe ..."
9
10 # It's handy to say "perl -d:SizeMe" but has side effects
11 # currently we simple disable the debugger (as best we can)
12 # otherwise it (or rather some bits of $^P) cause memory bloat.
13 # we might want to provide some smarter compatibility in future.
14 # We might also want to provide a way to set some bits, such as
15 # 0x10  Keep info about source lines on which a sub is defined
16 # 0x100 Provide informative "file" names for evals
17 # 0x200 Provide informative names to anonymous subroutines
18 if ($^P) { # default is 0x73f
19     warn "Note: Devel::SizeMe currently disables perl debugger mode\n";
20     $^P = 0;
21     $do_size_at_end = 1;
22 }
23
24 END {
25     Devel::Memory::perl_size() if $do_size_at_end;
26 }
27
28 1;