diff --git a/packages/benchmark/package.json b/packages/benchmark/package.json index 1b8c7a98df..0eebf9ad7a 100644 --- a/packages/benchmark/package.json +++ b/packages/benchmark/package.json @@ -33,7 +33,8 @@ "prepack": "tsc --build tsconfig.build.json", "install-engines": "./install-engines.sh", "test": "./run-tests.sh", - "cpu-prof-test": "yarn rollup -c && node --jitless --cpu-prof dist/bundle.js" + "cpu-prof-test": "yarn rollup -c && node --jitless --cpu-prof dist/bundle.js", + "test:node": "yarn rollup -c && node dist/bundle.js" }, "devDependencies": { "@endo/init": "workspace:^", diff --git a/packages/benchmark/src/benchmark.js b/packages/benchmark/src/benchmark.js index f807105f77..c12126ca8c 100644 --- a/packages/benchmark/src/benchmark.js +++ b/packages/benchmark/src/benchmark.js @@ -1,3 +1,5 @@ +/* global process */ + const getTime = () => Date.now() * 1_000_000; async function benchmark(name, t, fn, expedtedTime, iterations = 10000) { @@ -25,15 +27,23 @@ function truthy(value, message = 'Expected a truthy value') { if (!value) throw Error(message); } +function logMemoryUsage(message = '') { + if (typeof process === 'undefined') return; + console.log(message, process.memoryUsage()); +} + async function test(name, fn) { await null; + console.log('\n\n'); + console.log('Running test: ', name); + logMemoryUsage('Memory Usage Before Test: '); try { - console.log('Running test: ', name); await fn({ assert, truthy }); console.log(`✅ Passed`); } catch (err) { console.log(`❌ Failed: ${err.message}`); } + logMemoryUsage('Memory Usage After Test: '); } export { benchmark, test };