stas01/10/05 10:25:38
Modified:util perl_bloat.pl
Log:
- extend to report separately the added size for each arg in ARGV + total
- handle Foo/Bar.pm in addition to Foo::Bar and code snippets
Revision ChangesPath
1.2 +24 -6 modperl-2.0/util/perl_bloat.pl
Index: perl_bloat.pl
===
RCS file: /home/cvs/modperl-2.0/util/perl_bloat.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- perl_bloat.pl 2001/09/18 16:16:18 1.1
+++ perl_bloat.pl 2001/10/05 17:25:37 1.2
@@ -1,12 +1,24 @@
#!/usr/bin/perl -w
+# perlbloat.pl 'some perlcode' 'more perl code'
+# perlbloat.pl Foo/Bar.pm Bar/Tar.pm
+# perlbloat.pl Foo::Bar Bar::Tar
+
+no warnings;
+
use GTop ();
my $gtop = GTop->new;
-my $before = $gtop->proc_mem($$)->size;
+my $total = 0;
for (@ARGV) {
-if (eval "require $_") {
+
+my $code = $_;
+file2package($_) if /\S+\.pm$/;
+
+my $before = $gtop->proc_mem($$)->size;
+
+if (eval "require $_" ) {
eval {
$_->import;
};
@@ -15,11 +27,17 @@
eval $_;
die $@ if $@;
}
-}
-
-my $after = $gtop->proc_mem($$)->size;
-printf "@ARGV added %s\n", GTop::size_string($after - $before);
+my $after = $gtop->proc_mem($$)->size;
+printf "%-30s added %s\n", $_, GTop::size_string($after - $before);
+$total += $after - $before;
+}
+print "-" x 46, "\n";
+printf "Total added %30s\n", GTop::size_string($total);
+sub file2package {
+$_[0] =~ s|/|::|g;
+$_[0] =~ s|\.pm$||;
+}