#!/usr/bin/perl -w use strict 'vars'; my ($i, $ver, $line, %values, %sums, %devs); foreach $ver ("2.95.3", "3.0.4", "3.1.1", "3.2.3", "3.3.2", "3.4.0") { $values{$ver} = (); } foreach $ver ("2.95.3", "3.0.4", "3.1.1", "3.2.3", "3.3.2", "3.4.0") { for ($i = 1; $i <= 10; $i++) { my $fname = "bench-$ver-Mastercard.asf-$i.txt"; open(IN, $fname) || die "honk $fname"; while () { chomp(); if (/^BENCHMARKs.* ([0-9\.]+)s$/) { push(@{$values{$ver}}, $1); } } close(IN); } } foreach $ver ("2.95.3", "3.0.4", "3.1.1", "3.2.3", "3.3.2", "3.4.0") { for ($i = 0; $i < scalar(@{$values{$ver}}); $i++) { $sums{$ver} += ${$values{$ver}}[$i]; } $sums{$ver} /= scalar(@{$values{$ver}}); for ($i = 0; $i < scalar(@{$values{$ver}}); $i++) { my $diff; $diff = ${$values{$ver}}[$i] - $sums{$ver}; $devs{$ver} += $diff * $diff; } $devs{$ver} = sqrt($devs{$ver} / scalar(@{$values{$ver}})); print("$ver | avg ", $sums{$ver}, " dev ", $devs{$ver}, "\n"); }