Fix benchmark usage, add instructions

This commit is contained in:
Daniel Imms
2026-01-31 15:28:11 -08:00
parent 2e2270d01f
commit 431d511c95
3 changed files with 28 additions and 12 deletions
@@ -0,0 +1,16 @@
---
applyTo: '**/*.benchmark.ts'
---
# Benchmark run instructions
- Full suite: `npm run benchmark`
- Single benchmark file:
- Tree: `npm run benchmark -- -t out-test/benchmark/Event.benchmark.js`
- Run file: `npm run benchmark -- -s "out-test/benchmark/Event.benchmark.js" out-test/benchmark/Event.benchmark.js`
- Single context/case:
- Use `-t` to get the path, then:
- `npm run benchmark -- -s "<path>" out-test/benchmark/Event.benchmark.js`
Notes:
- Benchmarks run from built JS in `out-test/benchmark/*.benchmark.js`.
- Keep `NODE_PATH=./out` (handled by the npm script).
+12 -12
View File
@@ -3,7 +3,7 @@
* @license MIT
*/
import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark';
import { perfContext, before, RuntimeCase } from 'xterm-benchmark';
import { Emitter } from 'common/Event';
const ITERATIONS = 1_000_000;
@@ -14,12 +14,12 @@ perfContext('Emitter.fire()', () => {
before(() => {
emitter = new Emitter<number>();
});
new ThroughputRuntimeCase('', () => {
new RuntimeCase('', () => {
for (let i = 0; i < ITERATIONS; i++) {
emitter.fire(i);
}
return { payloadSize: ITERATIONS };
}, { fork: false }).showAverageThroughput();
}, { fork: false }).showAverageRuntime();
});
perfContext('1 listener', () => {
@@ -29,12 +29,12 @@ perfContext('Emitter.fire()', () => {
emitter = new Emitter<number>();
emitter.event(e => { sum += e; });
});
new ThroughputRuntimeCase('', () => {
new RuntimeCase('', () => {
for (let i = 0; i < ITERATIONS; i++) {
emitter.fire(i);
}
return { payloadSize: ITERATIONS };
}, { fork: false }).showAverageThroughput();
return { payloadSize: ITERATIONS, sum };
}, { fork: false }).showAverageRuntime();
});
perfContext('2 listeners', () => {
@@ -45,12 +45,12 @@ perfContext('Emitter.fire()', () => {
emitter.event(e => { sum += e; });
emitter.event(e => { sum += e * 2; });
});
new ThroughputRuntimeCase('', () => {
new RuntimeCase('', () => {
for (let i = 0; i < ITERATIONS; i++) {
emitter.fire(i);
}
return { payloadSize: ITERATIONS };
}, { fork: false }).showAverageThroughput();
return { payloadSize: ITERATIONS, sum };
}, { fork: false }).showAverageRuntime();
});
perfContext('5 listeners', () => {
@@ -62,11 +62,11 @@ perfContext('Emitter.fire()', () => {
emitter.event(e => { sum += e; });
}
});
new ThroughputRuntimeCase('', () => {
new RuntimeCase('', () => {
for (let i = 0; i < ITERATIONS; i++) {
emitter.fire(i);
}
return { payloadSize: ITERATIONS };
}, { fork: false }).showAverageThroughput();
return { payloadSize: ITERATIONS, sum };
}, { fork: false }).showAverageRuntime();
});
});