benchmark: always throw the same Error instance

Stack trace capturing currently accounts for 40 % of the benchmark
running time. Always throwing the same exception object removes
that overhead and lets the benchmark be more focused on what it is
supposed to measure.

Refs: https://github.com/nodejs/node/pull/34512#issuecomment-663977271

PR-URL: https://github.com/nodejs/node/pull/34523
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Andrey Pechkurov <apechkurov@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
This commit is contained in:
Anna Henningsen 2020-07-27 01:11:38 +02:00 committed by Shelley Vohr
parent 44e6c010b4
commit c4457d873f
No known key found for this signature in database
GPG Key ID: F13993A75599653C

View File

@ -37,10 +37,11 @@ const bench = common.createBenchmark(main, {
]
});
const err = new Error('foobar');
async function run(n) {
for (let i = 0; i < n; i++) {
await new Promise((resolve) => resolve())
.then(() => { throw new Error('foobar'); })
.then(() => { throw err; })
.catch((e) => e);
}
}