blob: e699f328c440a711e595226e7cfe176e21d51713 [file] [log] [blame]
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
function getSingleResult(benchmark, commit, resultName, resultIteration = 0, warmup = false) {
if (!(benchmark in commit.benchmarks)) {
return NaN;
}
const benchmarkData = commit.benchmarks[benchmark];
const allResults = warmup ? benchmarkData.warmup : benchmarkData.results;
const resultsForIteration = allResults[resultIteration];
// If a given iteration does not declare a result, then the result
// was the same as the first run.
if (resultIteration > 0 && !(resultName in resultsForIteration)) {
return allResults.first()[resultName];
}
return resultsForIteration[resultName];
}
function getAllResults(benchmark, commit, resultName, transformation, warmup = false) {
if (!(benchmark in commit.benchmarks)) {
return NaN;
}
const benchmarkData = commit.benchmarks[benchmark];
if (warmup && !('warmup' in benchmarkData)) {
return NaN;
}
const result = [];
const allResults = warmup ? benchmarkData.warmup : benchmarkData.results;
for (var iteration = 0; iteration < allResults.length; iteration++) {
result.push(getSingleResult(benchmark, commit, resultName, iteration, warmup));
}
if (transformation) {
return transformation(result);
}
return result;
}
function getAllWarmupResults(benchmark, commit, resultName, transformation) {
return getAllResults(benchmark, commit, resultName, transformation, true);
}