@@ -, +, @@ --- memory_usage.pl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 memory_usage.pl --- a/memory_usage.pl +++ a/memory_usage.pl @@ -0,0 +1,31 @@ +use Modern::Perl; + +use Memory::Usage; +use File::Slurp qw( read_file ); + +my @modules = read_file('cpanfile'); + +my $script = <new(); +\$mu->record("Loading %s"); +require %s; +\$mu->record("module loaded"); +print \$mu->report(); +EOF + +$script =~ s|\n||g; +for my $m ( @modules ) { + chomp $m; + $m =~ s|^requires '([^']*)'.*$|$1|; + $m =~ s|^recommends '([^']*)'.*$|$1|; + + my $cmd = sprintf $script, $m, $m; + my $output = qx{perl -MMemory::Usage -E '$cmd'}; + + my @report = split "\n", $output; + my $l = $report[2]; + my @x = split " ", $l; + my $diff_rss = $x[6]; + $diff_rss =~ s|\)$||; + say sprintf "%s - %s", $diff_rss, $m; +} --