Skip to content

Commit 53be1bb

Browse files
committed
Calculate peak rates per perl in analyze compare_scaled_times()
1 parent da8fda3 commit 53be1bb

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

analyze

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -186,27 +186,38 @@ sub compare_scaled_times {
186186

187187
my %times_by_scale;
188188
my %rates_by_scale;
189+
my %rates_by_perl;
189190
while (my ($perl, $scale_times) = each %$times) {
190-
while (my ($scale, $time) = each %$scale_times) {
191-
next unless defined $time;
192-
my $bounded = $times_by_scale{$scale}{$perl} = max($time, $min_time);
193-
my $rate = $rates_by_scale{$scale}{$perl} = $scale / $bounded;
194-
$max_rate = $rate if $max_rate < $rate;
195-
}
191+
while (my ($scale, $time) = each %$scale_times) {
192+
next unless defined $time;
193+
my $bounded = $times_by_scale{$scale}{$perl} = max($time, $min_time);
194+
my $rate = $rates_by_scale{$scale}{$perl} = $scale / $bounded;
195+
$rates_by_perl{$perl}{$scale} = $rate;
196+
$max_rate = $rate if $max_rate < $rate;
197+
}
196198
}
197199

198200
my %relative_rates;
199201
while (my ($scale, $perl_rates) = each %rates_by_scale) {
200-
while (my ($perl, $rate) = each %$perl_rates) {
201-
$relative_rates{$scale}{$perl} = $rate / $max_rate;
202-
}
202+
while (my ($perl, $rate) = each %$perl_rates) {
203+
$relative_rates{$scale}{$perl} = $rate / $max_rate;
204+
}
205+
}
206+
207+
my %peak_rate;
208+
while (my ($perl, $scale_rates) = each %rates_by_perl) {
209+
my @sorted = sort { $scale_rates->{$b} <=> $scale_rates->{$a} } keys %$scale_rates;
210+
my $fastest = $sorted[0];
211+
my $rate = $scale_rates->{$fastest};
212+
$peak_rate{$perl} = { scale => $fastest, rate => $rate, relative => $rate / $max_rate };
203213
}
204214

205215
return {
206-
times_by_scale => \%times_by_scale,
207-
rates_by_scale => \%rates_by_scale,
208-
relative_rates => \%relative_rates,
209-
};
216+
times_by_scale => \%times_by_scale,
217+
rates_by_scale => \%rates_by_scale,
218+
relative_rates => \%relative_rates,
219+
peak_rate => \%peak_rate,
220+
};
210221
}
211222

212223
sub summarize_results_json {

0 commit comments

Comments
 (0)