mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 1 | #!/usr/bin/perl |
| 2 | # |
| 3 | # Copyright Martin J. Bligh (mbligh@mbligh.org), 2006 |
| 4 | |
| 5 | $bin = `realpath $0 | xargs dirname`; chomp $bin; |
| 6 | require "$bin/abat_parse.pm"; |
| 7 | |
| 8 | $plotgraph = "$bin/plotgraph"; |
| 9 | |
| 10 | $perfdir = shift(@ARGV); |
| 11 | die unless (-d $perfdir); |
| 12 | |
| 13 | opendir PERFDIR, $perfdir; |
| 14 | my @data_files = grep /^plotdata\.[\w-]+\.[\w-]+$/, readdir PERFDIR; |
| 15 | closedir PERFDIR; |
| 16 | chdir ($perfdir); |
| 17 | |
mbligh | 15110b7 | 2009-01-13 23:33:33 +0000 | [diff] [blame] | 18 | %axis_labels = ( 'kernbench' => 'Elapsed time (seconds)', |
| 19 | 'dbench' => 'Throughput (MB/s)', |
| 20 | 'tbench' => 'Throughput (MB/s)', |
| 21 | 'reaim' => 'Max Jobs per Minute', |
| 22 | ); |
mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 23 | |
mbligh | 15110b7 | 2009-01-13 23:33:33 +0000 | [diff] [blame] | 24 | %plot_cols = ( 'kernbench' => '1:4:8', |
| 25 | 'dbench' => '1:4:5', |
| 26 | 'tbench' => '1:4:5', |
| 27 | 'reaim' => '1:4:5', |
| 28 | ); |
| 29 | |
mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 30 | foreach $data_file (@data_files) { |
mbligh | 15110b7 | 2009-01-13 23:33:33 +0000 | [diff] [blame] | 31 | $data_file =~ /^plotdata\.([\w-]+)\.([\w-]+)$/; |
| 32 | ($test, $machine) = ($1, $2); |
| 33 | print " === Analysing data file: $data_file $test $machine\n"; |
| 34 | push @machines, $machine; |
| 35 | open DATAFILE, $data_file || die "Cannot open $data_file"; |
| 36 | while ($data = <DATAFILE>) { |
| 37 | print "X " . $data; |
| 38 | chomp $data; |
| 39 | $data =~ s/^\d+\s+//; # get rid of count |
| 40 | @data = split (/ /, $data); |
| 41 | $version = $data[0]; |
| 42 | print "$test $version = $data\n"; |
| 43 | $results{$test}{$machine}{$version} = $data; |
| 44 | push @versions, $version; |
| 45 | } |
mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 46 | } |
| 47 | |
| 48 | @machines = list_uniq (@machines); |
| 49 | @versions = sort version list_uniq (@versions); |
| 50 | |
| 51 | @relevant = relevant_versions(@versions); |
| 52 | |
| 53 | foreach $machine (@machines) { |
mbligh | 15110b7 | 2009-01-13 23:33:33 +0000 | [diff] [blame] | 54 | foreach $test (keys(%axis_labels)) { |
| 55 | graph_plot($machine, "${test}.full.${machine}", |
| 56 | $test, @versions); |
| 57 | graph_plot($machine, "${test}.${machine}", |
| 58 | $test, @relevant); |
| 59 | } |
mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 60 | } |
| 61 | |
| 62 | sub graph_plot |
| 63 | { |
mbligh | 15110b7 | 2009-01-13 23:33:33 +0000 | [diff] [blame] | 64 | my ($machine, $filename, $test, @plot_versions) = @_; |
| 65 | my $count = 0; |
mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 66 | |
mbligh | 15110b7 | 2009-01-13 23:33:33 +0000 | [diff] [blame] | 67 | print " ----- test: $test machine: $machine $#plot_versions\n"; |
| 68 | open (DATA, "> $filename") || die "Cannot open data file $filename"; |
| 69 | foreach $version (@plot_versions) { |
| 70 | my $results = $results{$test}{$machine}{$version}; |
| 71 | next unless ($results =~ /\S/); |
| 72 | $count++; |
| 73 | print "$count $version $results\n"; |
| 74 | print DATA "$count $results\n"; |
| 75 | } |
| 76 | close (DATA); |
| 77 | print " ----- \n"; |
| 78 | print `$plotgraph $filename '$axis_labels{$test}' '$plot_cols{$test}'`; |
mbligh | 5d9d9d6 | 2007-07-10 17:48:36 +0000 | [diff] [blame] | 79 | } |
| 80 | |