Skip to content

Commit 77036d3

Browse files
authored
Merge pull request #5647 from Tyriar/fix_benchmark
Fix benchmark usage, add instructions
2 parents 2e2270d + eed8423 commit 77036d3

3 files changed

Lines changed: 30 additions & 12 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
applyTo: '**/*.benchmark.ts'
3+
---
4+
# Benchmark run instructions
5+
6+
- Full suite: `npm run benchmark`
7+
- Single benchmark file:
8+
- Tree: `npm run benchmark -- -t out-test/benchmark/Event.benchmark.js`
9+
- Run file: `npm run benchmark -- -s "out-test/benchmark/Event.benchmark.js" out-test/benchmark/Event.benchmark.js`
10+
- Single context/case:
11+
- Use `-t` to get the path, then:
12+
- `npm run benchmark -- -s "<path>" out-test/benchmark/Event.benchmark.js`
13+
14+
When writing instructions, use `RuntimeCase` to measure pure runtime in ms, use `ThroughputRuntimeCase` when measuring throughput in MB/s.
15+
16+
Notes:
17+
- Benchmarks run from built JS in `out-test/benchmark/*.benchmark.js`.
18+
- Keep `NODE_PATH=./out` (handled by the npm script).
File renamed without changes.

test/benchmark/Event.benchmark.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @license MIT
44
*/
55

6-
import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark';
6+
import { perfContext, before, RuntimeCase } from 'xterm-benchmark';
77
import { Emitter } from 'common/Event';
88

99
const ITERATIONS = 1_000_000;
@@ -14,12 +14,12 @@ perfContext('Emitter.fire()', () => {
1414
before(() => {
1515
emitter = new Emitter<number>();
1616
});
17-
new ThroughputRuntimeCase('', () => {
17+
new RuntimeCase('', () => {
1818
for (let i = 0; i < ITERATIONS; i++) {
1919
emitter.fire(i);
2020
}
2121
return { payloadSize: ITERATIONS };
22-
}, { fork: false }).showAverageThroughput();
22+
}, { fork: false }).showAverageRuntime();
2323
});
2424

2525
perfContext('1 listener', () => {
@@ -29,12 +29,12 @@ perfContext('Emitter.fire()', () => {
2929
emitter = new Emitter<number>();
3030
emitter.event(e => { sum += e; });
3131
});
32-
new ThroughputRuntimeCase('', () => {
32+
new RuntimeCase('', () => {
3333
for (let i = 0; i < ITERATIONS; i++) {
3434
emitter.fire(i);
3535
}
36-
return { payloadSize: ITERATIONS };
37-
}, { fork: false }).showAverageThroughput();
36+
return { payloadSize: ITERATIONS, sum };
37+
}, { fork: false }).showAverageRuntime();
3838
});
3939

4040
perfContext('2 listeners', () => {
@@ -45,12 +45,12 @@ perfContext('Emitter.fire()', () => {
4545
emitter.event(e => { sum += e; });
4646
emitter.event(e => { sum += e * 2; });
4747
});
48-
new ThroughputRuntimeCase('', () => {
48+
new RuntimeCase('', () => {
4949
for (let i = 0; i < ITERATIONS; i++) {
5050
emitter.fire(i);
5151
}
52-
return { payloadSize: ITERATIONS };
53-
}, { fork: false }).showAverageThroughput();
52+
return { payloadSize: ITERATIONS, sum };
53+
}, { fork: false }).showAverageRuntime();
5454
});
5555

5656
perfContext('5 listeners', () => {
@@ -62,11 +62,11 @@ perfContext('Emitter.fire()', () => {
6262
emitter.event(e => { sum += e; });
6363
}
6464
});
65-
new ThroughputRuntimeCase('', () => {
65+
new RuntimeCase('', () => {
6666
for (let i = 0; i < ITERATIONS; i++) {
6767
emitter.fire(i);
6868
}
69-
return { payloadSize: ITERATIONS };
70-
}, { fork: false }).showAverageThroughput();
69+
return { payloadSize: ITERATIONS, sum };
70+
}, { fork: false }).showAverageRuntime();
7171
});
7272
});

0 commit comments

Comments
 (0)