3 # Parse a massif.out.xxx file and output peak total memory usage
9 use open qw(:std utf8);
11 die unless @ARGV == 1;
14 open my $fh, '<', $ARGV[0] or die;
15 { local $/ = 'snapshot='; @snaps = <$fh>; }
18 my ($max, $max_heap, $max_he, $max_stack) = (0, 0, 0, 0);
21 my ($heap, $heap_extra, $stack) = m{
23 mem_heap_extra_B=(\d+)\n
26 next unless defined $heap;
27 my $total = $heap + $heap_extra + $stack;
29 ($max, $max_heap, $max_he, $max_stack) = ($total, $heap, $heap_extra, $stack);
33 printf "$max (heap $max_heap+$max_he, stack $max_stack)\n";