Skip to content

Commit 641a79d

Browse files
rshestfacebook-github-bot
authored andcommitted
Improve benchmark comparison printout ("slower"->"faster") (#53221)
Summary: Pull Request resolved: #53221 # Changelog: [Internal] - This changes the benchmark test results comparison print the results slightly differently, in particular it now uses the slowest result as a baseline and prints how much faster the other ones are (as opposed to printing "slower" previously). This arguably brings a more positive vibe when looking into the benchmark results :) Reviewed By: andrewdacenko Differential Revision: D80082134 fbshipit-source-id: 7dc9c7c520afe08270d4f5da9031db02261690ba
1 parent f1d014a commit 641a79d

1 file changed

Lines changed: 20 additions & 10 deletions

File tree

private/react-native-fantom/runner/benchmarkUtils.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,18 @@ export const printBenchmarkResultsRanking = (
4949
const results: {[string]: {[string]: string}} = {};
5050
for (const taskName in testTaskTimings) {
5151
const kv = Object.entries(testTaskTimings[taskName]);
52-
kv.sort((a, b) => a[1] - b[1]);
53-
const bestTiming = kv[0][1];
52+
kv.sort((a, b) => b[1] - a[1]);
53+
const slowest = kv[0][1];
54+
const fastest = kv[kv.length - 1][1];
5455
results[taskName] = {};
55-
kv.forEach(([key, val]) => {
56-
results[taskName][key] =
57-
`${val.toFixed(3)}ms ${getTimingDelta(bestTiming, val)}`;
58-
});
59-
results[taskName][kv[0][0]] = `🏆 ${bestTiming.toFixed(3)}ms`;
56+
for (let i = 0; i < kv.length; i++) {
57+
const [title, timing] = kv[i];
58+
let caption =
59+
timing === fastest ? '🏆 ' : timing === slowest ? '🐌 ' : '';
60+
caption += `${timing.toFixed(3)}ms`;
61+
caption += getTimingDelta(slowest, timing);
62+
results[taskName][title] = caption;
63+
}
6064
}
6165

6266
console.log('### Benchmark Times Comparison (p50): ###');
@@ -65,9 +69,15 @@ export const printBenchmarkResultsRanking = (
6569
};
6670

6771
function getTimingDelta(lastTiming: ?number, currentTiming: ?number): string {
68-
if (lastTiming != null && currentTiming != null) {
69-
const deltaPercent = ((currentTiming - lastTiming) / lastTiming) * 100;
70-
return `(${deltaPercent.toFixed(2)}% ${deltaPercent > 0 ? 'slower' : 'faster'})`;
72+
if (
73+
lastTiming != null &&
74+
currentTiming != null &&
75+
lastTiming !== currentTiming
76+
) {
77+
const delta = currentTiming - lastTiming;
78+
const deltaPercent =
79+
Math.abs(delta / (delta > 0 ? lastTiming : currentTiming)) * 100;
80+
return ` (${deltaPercent.toFixed(2)}% ${delta > 0 ? 'slower' : 'faster'})`;
7181
} else {
7282
return '';
7383
}

0 commit comments

Comments
 (0)