Admin/profiling_report
author wenzelm
Mon Sep 16 12:51:33 2013 +0200 (2013-09-16)
changeset 53658 9e8714b4661a
parent 36859 51af1657263b
permissions -rwxr-xr-x
updated to smlnj 110.76;
     1 #!/usr/bin/env perl
     2 #
     3 # Author: Makarius
     4 #
     5 # DESCRIPTION: Simple report generator for Poly/ML profiling output.
     6 
     7 use strict;
     8 
     9 my %log = ();
    10 my @output = ();
    11 
    12 while (<ARGV>) {
    13     if (m,^([ 0-9]{10}) (\S+$|GARBAGE COLLECTION.*$),) {
    14 	my $count = $1;
    15 	my $fun = $2;
    16 	$fun =~ s,-?\(\d+\).*$,,g;
    17 	$fun =~ s,/\d+$,,g;
    18 	if ($count =~ m,^\s*(\d)+$,) {
    19 	    if (defined($log{$fun})) {
    20 		$log{$fun} += $count;
    21 	    } else {
    22 		$log{$fun} = $count;
    23 	    }
    24 	}
    25     }
    26 }
    27 
    28 foreach my $fun (keys %log) {
    29     push @output, (sprintf "%14u %s\n", $log{$fun}, $fun);
    30 }
    31 
    32 print (sort @output);