diff --git a/codecs/rotate/benchmark.js b/codecs/rotate/benchmark.js index d1551574..abc7478a 100644 --- a/codecs/rotate/benchmark.js +++ b/codecs/rotate/benchmark.js @@ -12,26 +12,34 @@ async function init() { const wasmPageSize = 64 * 1024; const buffer = readbuffer("rotate.wasm"); - const {instance} = await WebAssembly.instantiate(buffer); + const { instance } = await WebAssembly.instantiate(buffer); - const pagesAvailable = Math.floor(instance.exports.memory.buffer.byteLength / wasmPageSize); + const pagesAvailable = Math.floor( + instance.exports.memory.buffer.byteLength / wasmPageSize + ); const pagesNeeded = Math.floor((imageByteSize * 2 + 4) / wasmPageSize) + 1; const additionalPagesNeeded = pagesNeeded - pagesAvailable; - if(additionalPagesNeeded > 0) { - instance.exports.memory.grow(additionalPagesNeeded) + if (additionalPagesNeeded > 0) { + instance.exports.memory.grow(additionalPagesNeeded); } - for(let i = 0; i < 100; i++) { - const start = Date.now(); - instance.exports.rotate(imageDimensions, imageDimensions, 90); - iterations[i] = Date.now() - start; - } - const average = iterations.reduce((sum, c) => sum + c) / iterations.length; - const stddev = Math.sqrt(iterations - .map(i => Math.pow(i - average, 2)) - .reduce((sum, c) => sum + c) / iterations.length); - print(`n = ${iterations.length}`); - print(`Average: ${average}`) - print(`StdDev: ${stddev}`); + [0, 90, 180, 270].forEach(rotation => { + print(`\n${rotation} degrees`); + print(`==============================`); + for (let i = 0; i < 100; i++) { + const start = Date.now(); + instance.exports.rotate(imageDimensions, imageDimensions, rotation); + iterations[i] = Date.now() - start; + } + const average = iterations.reduce((sum, c) => sum + c) / iterations.length; + const stddev = Math.sqrt( + iterations + .map(i => Math.pow(i - average, 2)) + .reduce((sum, c) => sum + c) / iterations.length + ); + print(`n = ${iterations.length}`); + print(`Average: ${average}`); + print(`StdDev: ${stddev}`); + }); } init().catch(e => console.error(e.stack));