Skip to content

Commit 817a82e

Browse files
author
alxndrsn
committed
compare-multiple: use median
1 parent ae37cd2 commit 817a82e

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

bin/perf-test-results/compare-multiple.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,32 @@ rawResults.forEach(({ adapter, client, results }) => {
3838
if (!testSuites[suite].includes(t)) testSuites[suite].push(t);
3939

4040
if (!resultsByAdapter[adapter][suite]) resultsByAdapter[adapter][suite] = {};
41-
if (!resultsByAdapter[adapter][suite][t]) resultsByAdapter[adapter][suite][t] = { numIterations:0, min:Number.MAX_VALUE };
41+
if (!resultsByAdapter[adapter][suite][t]) resultsByAdapter[adapter][suite][t] = { numIterations:0, min:Number.MAX_VALUE, median:-1, all:[] };
4242

43+
resultsByAdapter[adapter][suite][t].all.push(median);
4344
resultsByAdapter[adapter][suite][t].min = Math.min(resultsByAdapter[adapter][suite][t].min, median);
4445
resultsByAdapter[adapter][suite][t].numIterations++;
4546
});
4647
});
4748

49+
Object.values(resultsByAdapter).forEach(adapterRes => {
50+
Object.values(adapterRes).forEach(suite => {
51+
console.log('suite:', JSON.stringify(suite, null, 2));
52+
Object.values(suite).forEach(test => {
53+
console.log('test:', JSON.stringify(test, null, 2));
54+
test.all.sort();
55+
const len = test.all.length;
56+
const mid = Math.floor(len / 2);
57+
console.log({ len, mid });
58+
if(len % 2) {
59+
test.median = test.all[mid];
60+
} else {
61+
test.median = (test.all[mid] + test.all[mid-1]) / 2;
62+
}
63+
});
64+
});
65+
});
66+
4867
if (adapters.length < 2) {
4968
console.log('!!! At least 2 different adapters are required to make comparisons!');
5069
process.exit(1);
@@ -56,4 +75,4 @@ const sortedResults = adapters.map(adapter => ({
5675
adapter, results:resultsByAdapter[adapter]
5776
}));
5877

59-
printComparisonReport({ useStat:'min' }, ...sortedResults);
78+
printComparisonReport({ useStat:'median' }, ...sortedResults);

0 commit comments

Comments
 (0)