#!/usr/bin/perl
##
## Profiler output munching program, run this on your driver.log if you are
## running with profiling, as:
##
##  sortprof < driver.log | more
##
## -Brandon Gillespie
##

### threshold, dont print out methods with less hits than this

$thresh = 50;

### dont bother with anything past this
$dops = 0;
$dmeths = 0;
@ops = ();
@meths = ();
while (<STDIN>) {
    chomp;
    if (/^Methods/) {
        $dops=0;
        $dmeths=1;
   } elsif (/^Opcodes/) {
        $dops=1;
        $dmeths=0;
#    } elsif ($dops) {
#        s/^\s*//;
#        ($count, $opcode, $op) = split(/\s+/);
#        if ($count > $thresh) {
#            push(@ops, "$count:$op");
#        }
    } elsif ($dmeths) {
        s/^\s*//;
        ($count, $meth) = split(/\s+/);
        if ($count > $thresh) {
            push(@meths, "$count:$meth");
        }
    }
}

#print ("Opcodes:\n");
#for (sort({$b <=> $a} @ops)) {
#    ($count, $op) = split(/:/);
#    printf("  %-10ld $op\n", $count);
#}

print ("Methods:\n");
for (sort({$b <=> $a} @meths)) {
    ($count, $m) = split(/:/);
    printf("  %-10ld $m\n", $count);
}

