* bench: setup benchmarks * add charcodes * perf: use string as buffer backend baseline 256 empty statements: 3_718 ops/sec ±18.65% (0.269ms) baseline 512 empty statements: 2_070 ops/sec ±0.96% (0.483ms) baseline 1024 empty statements: 1_012 ops/sec ±1.76% (0.988ms) baseline 2048 empty statements: 510 ops/sec ±1.53% (1.96ms) current 256 empty statements: 3_965 ops/sec ±21.14% (0.252ms) current 512 empty statements: 2_219 ops/sec ±1.29% (0.451ms) current 1024 empty statements: 1_089 ops/sec ±1.53% (0.918ms) current 2048 empty statements: 548 ops/sec ±1.87% (1.824ms) * perf: add endsWithCharAndNewline baseline 256 1-length identifiers: 1_947 ops/sec ±25.11% (0.514ms) baseline 512 1-length identifiers: 1_115 ops/sec ±0.89% (0.897ms) baseline 1024 1-length identifiers: 537 ops/sec ±1.71% (1.862ms) baseline 2048 1-length identifiers: 273 ops/sec ±0.57% (3.669ms) current 256 1-length identifiers: 2_178 ops/sec ±27.17% (0.459ms) current 512 1-length identifiers: 1_250 ops/sec ±1.19% (0.8ms) current 1024 1-length identifiers: 622 ops/sec ±0.71% (1.608ms) current 2048 1-length identifiers: 308 ops/sec ±1.35% (3.251ms) * perf: avoid one byte string compare * perf: avoid scaning word for / * perf: hoist babel type methods baseline 256 25-length identifiers: 1_869 ops/sec ±29.4% (0.535ms) baseline 512 25-length identifiers: 1_092 ops/sec ±1.62% (0.916ms) baseline 1024 25-length identifiers: 537 ops/sec ±1.29% (1.862ms) baseline 2048 25-length identifiers: 264 ops/sec ±2% (3.793ms) current 256 25-length identifiers: 2_462 ops/sec ±23.38% (0.406ms) current 512 25-length identifiers: 1_401 ops/sec ±0.73% (0.714ms) current 1024 25-length identifiers: 671 ops/sec ±1.55% (1.491ms) current 2048 25-length identifiers: 332 ops/sec ±1.44% (3.014ms) * perf: hoist parens methods baseline 256 1-length identifiers: 2_678 ops/sec ±24.96% (0.373ms) baseline 512 1-length identifiers: 1_472 ops/sec ±2.33% (0.68ms) baseline 1024 1-length identifiers: 737 ops/sec ±1.74% (1.357ms) baseline 2048 1-length identifiers: 371 ops/sec ±0.79% (2.695ms) current 256 1-length identifiers: 2_633 ops/sec ±32.44% (0.38ms) current 512 1-length identifiers: 1_676 ops/sec ±1.49% (0.597ms) current 1024 1-length identifiers: 803 ops/sec ±1.95% (1.246ms) current 2048 1-length identifiers: 385 ops/sec ±2.22% (2.596ms) * cleanup unused benchcase * Update packages/babel-generator/src/buffer.ts Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com> * cleanup benchmarks Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
18 lines
520 B
JavaScript
18 lines
520 B
JavaScript
export function report(event) {
|
|
const bench = event.target;
|
|
const timeMs = bench.stats.mean * 1000;
|
|
const time =
|
|
timeMs < 10
|
|
? `${Math.round(timeMs * 1000) / 1000}ms`
|
|
: `${Math.round(timeMs)}ms`;
|
|
const msg = `${bench.name}: ${formatNumber(bench.hz)} ops/sec ±${
|
|
Math.round(bench.stats.rme * 100) / 100
|
|
}% (${time})`;
|
|
console.log(msg);
|
|
}
|
|
|
|
function formatNumber(x) {
|
|
if (x < 100) return `${Math.round(x * 100) / 100}`;
|
|
return `${Math.round(x)}`.replace(/\d(?=(?:\d{3})+$)/g, "$&_");
|
|
}
|