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