#!/usr/bin/perl # # Copyright Martin J. Bligh (mbligh@mbligh.org), 2006 $bin = `realpath $0 | xargs dirname`; chomp $bin; require "$bin/abat_parse.pm"; $plotgraph = "$bin/plotgraph"; $perfdir = shift(@ARGV); die unless (-d $perfdir); opendir PERFDIR, $perfdir; my @data_files = grep /^plotdata\.[\w-]+\.[\w-]+$/, readdir PERFDIR; closedir PERFDIR; chdir ($perfdir); %axis_labels = ( 'kernbench' => 'Elapsed time (seconds)', 'dbench' => 'Throughput (MB/s)', 'tbench' => 'Throughput (MB/s)', 'reaim' => 'Max Jobs per Minute', ); %plot_cols = ( 'kernbench' => '1:4:8', 'dbench' => '1:4:5', 'tbench' => '1:4:5', 'reaim' => '1:4:5', ); foreach $data_file (@data_files) { $data_file =~ /^plotdata\.([\w-]+)\.([\w-]+)$/; ($test, $machine) = ($1, $2); print " === Analysing data file: $data_file $test $machine\n"; push @machines, $machine; open DATAFILE, $data_file || die "Cannot open $data_file"; while ($data = <DATAFILE>) { print "X " . $data; chomp $data; $data =~ s/^\d+\s+//; # get rid of count @data = split (/ /, $data); $version = $data[0]; print "$test $version = $data\n"; $results{$test}{$machine}{$version} = $data; push @versions, $version; } } @machines = list_uniq (@machines); @versions = sort version list_uniq (@versions); @relevant = relevant_versions(@versions); foreach $machine (@machines) { foreach $test (keys(%axis_labels)) { graph_plot($machine, "${test}.full.${machine}", $test, @versions); graph_plot($machine, "${test}.${machine}", $test, @relevant); } } sub graph_plot { my ($machine, $filename, $test, @plot_versions) = @_; my $count = 0; print " ----- test: $test machine: $machine $#plot_versions\n"; open (DATA, "> $filename") || die "Cannot open data file $filename"; foreach $version (@plot_versions) { my $results = $results{$test}{$machine}{$version}; next unless ($results =~ /\S/); $count++; print "$count $version $results\n"; print DATA "$count $results\n"; } close (DATA); print " ----- \n"; print `$plotgraph $filename '$axis_labels{$test}' '$plot_cols{$test}'`; }