From b3a8aa3cae79742dc4530990777119efe8313b8a Mon Sep 17 00:00:00 2001 From: liabru Date: Sun, 21 Nov 2021 17:00:53 +0000 Subject: [PATCH] added filesize to test comparison report --- test/ExampleWorker.js | 7 +++++-- test/Examples.spec.js | 9 +++++++-- test/TestTools.js | 23 +++++++++++++---------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/test/ExampleWorker.js b/test/ExampleWorker.js index 8a9b074..791c808 100644 --- a/test/ExampleWorker.js +++ b/test/ExampleWorker.js @@ -75,8 +75,11 @@ const runExample = options => { totalDuration += duration[0] * 1e9 + duration[1]; totalMemory += process.memoryUsage().heapUsed; - for (let p = 0; p < engine.pairs.list.length; p += 1) { - const pair = engine.pairs.list[p]; + const pairsList = engine.pairs.list; + const pairsListLength = engine.pairs.list.length; + + for (let p = 0; p < pairsListLength; p += 1) { + const pair = pairsList[p]; const separation = pair.separation - pair.slop; if (pair.isActive && !pair.isSensor) { diff --git a/test/Examples.spec.js b/test/Examples.spec.js index b20a0c9..efb2dc9 100644 --- a/test/Examples.spec.js +++ b/test/Examples.spec.js @@ -3,6 +3,8 @@ jest.setTimeout(30 * 1000); +const fs = require('fs'); + const { comparisonReport, logReport, @@ -54,11 +56,14 @@ afterAll(async () => { const dev = await capturesDev; const build = await capturesBuild; + const buildSize = fs.statSync('./build/matter.min.js').size; + const devSize = fs.statSync('./build/matter.dev.min.js').size; + console.log( - 'Examples ran against previous release and current version\n\n' + 'Examples ran against previous release and current build\n\n' + logReport(build, `release`) + '\n' + logReport(dev, `current`) + '\n' - + comparisonReport(dev, build, MatterBuild.version, saveComparison) + + comparisonReport(dev, build, devSize, buildSize, MatterBuild.version, saveComparison) ); }); diff --git a/test/TestTools.js b/test/TestTools.js index 67ce103..8504adf 100644 --- a/test/TestTools.js +++ b/test/TestTools.js @@ -228,7 +228,7 @@ const logReport = (captures, version) => { + (report ? report : ' None\n'); }; -const comparisonReport = (capturesDev, capturesBuild, buildVersion, save) => { +const comparisonReport = (capturesDev, capturesBuild, devSize, buildSize, buildVersion, save) => { const similaritys = captureSimilarityExtrinsic(capturesDev, capturesBuild); const similarityEntries = Object.entries(similaritys); const devIntrinsicsChanged = {}; @@ -267,8 +267,10 @@ const comparisonReport = (capturesDev, capturesBuild, buildVersion, save) => { capturePerformance.sort((a, b) => a.name.localeCompare(b.name)); similarityEntries.sort((a, b) => a[1] - b[1]); - let perfChange = noiseThreshold(1 - (totalTimeDev / totalTimeBuild), 0.01); - let memoryChange = noiseThreshold((totalMemoryDev / totalMemoryBuild) - 1, 0.01); + const perfChange = noiseThreshold(1 - (totalTimeDev / totalTimeBuild), 0.01); + const memoryChange = noiseThreshold((totalMemoryDev / totalMemoryBuild) - 1, 0.01); + const overlapChange = (totalOverlapDev / (totalOverlapBuild || 1)) - 1; + const filesizeChange = (devSize / buildSize) - 1; let similarityAvg = 0; similarityEntries.forEach(([_, similarity]) => { @@ -277,20 +279,21 @@ const comparisonReport = (capturesDev, capturesBuild, buildVersion, save) => { similarityAvg /= similarityEntries.length; - const overlapChange = (totalOverlapDev / (totalOverlapBuild || 1)) - 1; - const report = (breakEvery, format) => [ [`Output comparison of ${similarityEntries.length}`, `examples against previous release ${format('matter-js@' + buildVersion, colors.Yellow)}` ].join(' '), `\n\n${format('Similarity', colors.White)}`, `${format(toPercent(similarityAvg), similarityAvg === 1 ? colors.Green : colors.Yellow)}%`, - `${format('Performance', colors.White)}`, - `${format((perfChange >= 0 ? '+' : '-') + toPercentRound(Math.abs(perfChange)), perfChange >= 0 ? colors.Green : colors.Red)}%`, - `${format('Memory', colors.White)}`, - `${format((memoryChange >= 0 ? '+' : '-') + toPercentRound(Math.abs(memoryChange)), memoryChange <= 0 ? colors.Green : colors.Red)}%`, `${format('Overlap', colors.White)}`, - `${format((overlapChange >= 0 ? '+' : '-') + toPercent(Math.abs(overlapChange)), overlapChange <= 0 ? colors.Green : colors.Red)}%`, + `${format((overlapChange >= 0 ? '+' : '-') + toPercent(Math.abs(overlapChange)), overlapChange <= 0 ? colors.Green : colors.Yellow)}%`, + `${format('Performance', colors.White)}`, + `${format((perfChange >= 0 ? '+' : '-') + toPercentRound(Math.abs(perfChange)), perfChange >= 0 ? colors.Green : colors.Yellow)}%`, + `${format('Memory', colors.White)}`, + `${format((memoryChange >= 0 ? '+' : '-') + toPercentRound(Math.abs(memoryChange)), memoryChange <= 0 ? colors.Green : colors.Yellow)}%`, + `${format('Filesize', colors.White)}`, + `${format((filesizeChange >= 0 ? '+' : '-') + toPercent(Math.abs(filesizeChange)), filesizeChange <= 0 ? colors.Green : colors.Yellow)}%`, + `${format(`${(devSize / 1024).toPrecision(4)} KB`, colors.White)}`, capturePerformance.reduce((output, p, i) => { output += `${p.name} `; output += `${similarityRatings(similaritys[p.name])} `;