Benchmarks
Performance is a release gate here, not a marketing page. Every number below is
generated at build time from the reports named in
docs/acceptance/performance-report.json, so this page cannot quietly pick up a
newer failed or incomplete run.
MiB/s is throughput , and higher is better. p95 is the nearest-rank 95th
percentile of the retained samples, so it shows tail behavior rather than the
average. Hover or focus any table row for its budget, sample count, median, and
p95.
Matched 1,000-file CLI comparison
ESLint, official Oxlint, and OXC for TSRX lint the same byte-identical TSX files, with one no-debugger rule, through each tool’s own npm entry point, over 5 warmups and 20 measured processes. The separate mixed-file-types row is a paired internal workload rather than a cross-tool comparison, and it is the only lane that enters the native TSRX path. Report: benchmarks/comparative/results-1789846911273.json (2026-09-19), every budget passed.
×
ms
budget ≤ 1.250×
official Oxlint
OXC for TSRX, all-TSX lane
0
0.3
0.6
0.9
1.2
1.5
0
20
40
60
80
budget
OXC for TSRX / official Oxlint (matched TSX lane)
asserted ratio 1.206× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.250×
official Oxlint
OXC for TSRX, all-TSX lane
0
0.3
0.6
0.9
1.2
1.5
0
20
40
60
80
budget
OXC for TSRX / official Oxlint (matched TSX lane)
asserted ratio 1.206× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≥ 2×
OXC for TSRX, all-TSX lane
ESLint + typescript-eslint
0
3
6
9
12
15
0
200
400
600
800
1000
budget
ESLint / OXC for TSRX (matched TSX lane)
asserted ratio 13.177× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≥ 2×
OXC for TSRX, all-TSX lane
ESLint + typescript-eslint
0
3
6
9
12
15
0
200
400
600
800
1000
budget
ESLint / OXC for TSRX (matched TSX lane)
asserted ratio 13.177× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.500×
all-TSX product workload
mixed file types workload
0
0.5
1
1.5
2
0
20
40
60
80
100
120
budget
Paired mixed-file-types / all-TSX product workload
asserted ratio 1.409× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.500×
all-TSX product workload
mixed file types workload
0
0.5
1
1.5
2
0
20
40
60
80
100
120
budget
Paired mixed-file-types / all-TSX product workload
asserted ratio 1.409× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
Boundary Result Budget Status
OXC for TSRX / official Oxlint (matched TSX lane) 1.206 × ≤ 1.250 × ✓ pass
ESLint / OXC for TSRX (matched TSX lane) 13.177 × ≥ 2 × ✓ pass
Paired mixed-file-types / all-TSX product workload 1.409 × ≤ 1.500 × ✓ pass
Native lint
Frozen release gate: throughput, same-build ordinary-path overhead, cold start, memory, and batch invariants. The npm-launcher ratio is a diagnostic boundary, not a speed claim. Report: benchmarks/native-lint/results-1789846859997.json (2026-09-19), every budget passed.
19 budgets, every budget passed. Show the numbers and the per-gate charts
Boundary Result Budget Status
P01 median standard-path latency ratio 1.001 ≤ 1.050 ✓ pass
P01 p95 standard-path latency ratio 1.005 ≤ 1.080 ✓ pass
P01 diagnostic parity 1 exactly 1 ✓ pass
P01 direct standard bypass 1 exactly 1 ✓ pass
P02 median scan+copy+parse throughput 216.30 ≥ 75 ✓ pass
P02 p95 scan+copy+parse throughput 201.43 ≥ 60 ✓ pass
P02 equivalent-TSX throughput ratio 0.491 ≥ 0.450 ✓ pass
P02 warm 10 KiB p95 scan+copy+parse latency 0.048 ≤ 1 ✓ pass
P03 in-process one-thread lint throughput 110.39 ≥ 35 ✓ pass
P03 CLI one-thread lint throughput 67.841 ≥ 35 ✓ pass
P03 end-to-end CLI latency ratio 1.221 ≤ 1.350 ✓ pass
P03 diagnostic parity 1 exactly 1 ✓ pass
P03 config compiled once 1 exactly 1 ✓ pass
P03 config one parse per file 1 exactly 1 ✓ pass
P03 configured rule applied 1 exactly 1 ✓ pass
P05 fresh-process TSRX p95 latency 3.882 ≤ 50 ✓ pass
Direct Rust / official Oxlint npm-launcher p95 ratio 0.108 ≤ 1.250 ✓ pass
P05 startup-rule diagnostic parity 1 exactly 1 ✓ pass
P07 TSRX peak RSS 231030784 ≤ 250626048 ✓ pass
×
ms
budget ≤ 1.050×
same-build canonical control
product standard path
0
0.2
0.4
0.6
0.8
1
1.2
0
2
4
6
8
10
12
budget
P01 median standard-path latency ratio
asserted ratio 1.001× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.050×
same-build canonical control
product standard path
0
0.2
0.4
0.6
0.8
1
1.2
0
2
4
6
8
10
12
budget
P01 median standard-path latency ratio
asserted ratio 1.001× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.080×
same-build canonical control
product standard path
0
0.3
0.6
0.9
1.2
1.5
0
2
4
6
8
10
12
budget
P01 p95 standard-path latency ratio
asserted ratio 1.005× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.080×
same-build canonical control
product standard path
0
0.3
0.6
0.9
1.2
1.5
0
2
4
6
8
10
12
budget
P01 p95 standard-path latency ratio
asserted ratio 1.005× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
MiB/s
MiB/s
budget ≥ 75 MiB/s
all 30 samples
0
50
100
150
200
250
190
200
210
220
230
budget
P02 median scan+copy+parse throughput
measured 216.30 MiB/s · pass · below: 30 samples, median 216.30 MiB/s (solid line), p95 201.43 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 75 MiB/s
all 30 samples
0
50
100
150
200
250
190
200
210
220
230
budget
P02 median scan+copy+parse throughput
measured 216.30 MiB/s · pass · below: 30 samples, median 216.30 MiB/s (solid line), p95 201.43 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 60 MiB/s
all 30 samples
0
50
100
150
200
250
190
200
210
220
230
budget
P02 p95 scan+copy+parse throughput
measured 201.43 MiB/s · pass · below: 30 samples, median 216.30 MiB/s (solid line), p95 201.43 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 60 MiB/s
all 30 samples
0
50
100
150
200
250
190
200
210
220
230
budget
P02 p95 scan+copy+parse throughput
measured 201.43 MiB/s · pass · below: 30 samples, median 216.30 MiB/s (solid line), p95 201.43 MiB/s (dotted line)
×
ms
budget ≥ 0.450×
equivalent TSX parse
TSRX scan, copy, and parse
0
0.1
0.2
0.3
0.4
0.5
0.6
0
1
2
3
4
5
6
budget
P02 equivalent-TSX throughput ratio
asserted ratio 0.491× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≥ 0.450×
equivalent TSX parse
TSRX scan, copy, and parse
0
0.1
0.2
0.3
0.4
0.5
0.6
0
1
2
3
4
5
6
budget
P02 equivalent-TSX throughput ratio
asserted ratio 0.491× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
ms
ms
budget ≤ 1 ms
all 100 samples
0
0.2
0.4
0.6
0.8
1
1.2
0.04
0.06
0.08
0.1
budget
P02 warm 10 KiB p95 scan+copy+parse latency
measured 0.048 ms · pass · below: 100 samples, median 0.047 ms (solid line), p95 0.048 ms (dotted line)
ms
ms
budget ≤ 1 ms
all 100 samples
0
0.2
0.4
0.6
0.8
1
1.2
0.04
0.06
0.08
0.1
budget
P02 warm 10 KiB p95 scan+copy+parse latency
measured 0.048 ms · pass · below: 100 samples, median 0.047 ms (solid line), p95 0.048 ms (dotted line)
MiB/s
MiB/s
budget ≥ 35 MiB/s
all 30 samples
0
30
60
90
120
150
100
105
110
115
120
budget
P03 in-process one-thread lint throughput
measured 110.39 MiB/s · pass · below: 30 samples, median 110.39 MiB/s (solid line), p95 105.24 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 35 MiB/s
all 30 samples
0
30
60
90
120
150
100
105
110
115
120
budget
P03 in-process one-thread lint throughput
measured 110.39 MiB/s · pass · below: 30 samples, median 110.39 MiB/s (solid line), p95 105.24 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 35 MiB/s
all 30 samples
0
20
40
60
80
62.5
65
67.5
70
72.5
budget
P03 CLI one-thread lint throughput
measured 67.841 MiB/s · pass · below: 30 samples, median 67.841 MiB/s (solid line), p95 64.062 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 35 MiB/s
all 30 samples
0
20
40
60
80
62.5
65
67.5
70
72.5
budget
P03 CLI one-thread lint throughput
measured 67.841 MiB/s · pass · below: 30 samples, median 67.841 MiB/s (solid line), p95 64.062 MiB/s (dotted line)
×
ms
budget ≤ 1.350×
equivalent TSX CLI lint
TSRX CLI lint
0
0.5
1
1.5
2
0
5
10
15
20
budget
P03 end-to-end CLI latency ratio
asserted ratio 1.221× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.350×
equivalent TSX CLI lint
TSRX CLI lint
0
0.5
1
1.5
2
0
5
10
15
20
budget
P03 end-to-end CLI latency ratio
asserted ratio 1.221× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
ms
ms
budget ≤ 50 ms
all 20 samples
0
10
20
30
40
50
60
3
3.5
4
4.5
budget
P05 fresh-process TSRX p95 latency
measured 3.882 ms · pass · below: 20 samples, median 3.370 ms (solid line), p95 3.882 ms (dotted line)
ms
ms
budget ≤ 50 ms
all 20 samples
0
10
20
30
40
50
60
3
3.5
4
4.5
budget
P05 fresh-process TSRX p95 latency
measured 3.882 ms · pass · below: 20 samples, median 3.370 ms (solid line), p95 3.882 ms (dotted line)
×
ms
budget ≤ 1.250×
official Oxlint npm launcher
direct Rust TSRX process
0
0.3
0.6
0.9
1.2
1.5
0
10
20
30
40
budget
Direct Rust / official Oxlint npm-launcher p95 ratio
asserted ratio 0.108× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.250×
official Oxlint npm launcher
direct Rust TSRX process
0
0.3
0.6
0.9
1.2
1.5
0
10
20
30
40
budget
Direct Rust / official Oxlint npm-launcher p95 ratio
asserted ratio 0.108× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
MiB
MiB
budget ≤ 239.02 MiB
all 5 samples
0
50
100
150
200
250
300
220
221
222
223
budget
P07 TSRX peak RSS
measured 220.33 MiB · pass · below: 5 samples, median 220.33 MiB (solid line), p95 222.27 MiB (dotted line)
MiB
MiB
budget ≤ 239.02 MiB
all 5 samples
0
50
100
150
200
250
300
220
221
222
223
budget
P07 TSRX peak RSS
measured 220.33 MiB · pass · below: 5 samples, median 220.33 MiB (solid line), p95 222.27 MiB (dotted line)
Frozen release gate: formatter throughput, convergence scaling, memory, and batch invariants. The historical 16.6 MiB/s value is an absolute cross-corpus-derived floor, not a speedup claim. Report: benchmarks/native-format/results-1789846871499.json (2026-09-19), every budget passed.
25 budgets, every budget passed. Show the numbers and the per-gate charts
Boundary Result Budget Status
p04 direct median ratio 1.211 ≤ 1.250 ✓ pass
p04 direct p95 ratio 1.222 ≤ 1.350 ✓ pass
p04 direct output parity 1 exactly 1 ✓ pass
p04 direct bypass 1 exactly 1 ✓ pass
p04 sequential median mib s 99.184 ≥ 15 ✓ pass
p04 sequential p95 mib s 87.901 ≥ 12 ✓ pass
Sequential throughput vs absolute 16.6 MiB/s floor 99.184 ≥ 16.600 ✓ pass
p04 default thread mib s 322.35 ≥ 100 ✓ pass
p04 generalized control median mib s 16.128 ≥ 12 ✓ pass
p04 generalized control p95 mib s 14.897 ≥ 10 ✓ pass
p04 generalized control linear scaling 1.009 ≤ 1.350 ✓ pass
p04 generalized control idempotent 1 exactly 1 ✓ pass
p04 generalized control one parse 1 exactly 1 ✓ pass
p04 generalized dynamic style coverage 1 exactly 1 ✓ pass
p04 generalized style metadata 1 exactly 1 ✓ pass
p04 generalized no hidden embedded parse 1 exactly 1 ✓ pass
p04 idempotent 1 exactly 1 ✓ pass
p04 one parse 1 exactly 1 ✓ pass
p04 config compiled once 1 exactly 1 ✓ pass
p04 config one parse per file 1 exactly 1 ✓ pass
p04 config options applied 1 exactly 1 ✓ pass
p05 stdin p95 ms 3.364 ≤ 110 ✓ pass
Direct Rust / official Oxfmt npm-launcher p95 ratio 0.101 ≤ 1.250 ✓ pass
p05 complete output 1 exactly 1 ✓ pass
p07 rss ratio 1.118 ≤ 1.300 ✓ pass
×
ms
budget ≤ 1.250×
canonical formatter control
product standard path
0
0.3
0.6
0.9
1.2
1.5
0
2
4
6
8
10
12
budget
p04 direct median ratio
asserted ratio 1.211× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.250×
canonical formatter control
product standard path
0
0.3
0.6
0.9
1.2
1.5
0
2
4
6
8
10
12
budget
p04 direct median ratio
asserted ratio 1.211× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.350×
canonical formatter control
product standard path
0
0.5
1
1.5
2
0
2
4
6
8
10
12
budget
p04 direct p95 ratio
asserted ratio 1.222× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.350×
canonical formatter control
product standard path
0
0.5
1
1.5
2
0
2
4
6
8
10
12
budget
p04 direct p95 ratio
asserted ratio 1.222× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
MiB/s
MiB/s
budget ≥ 15 MiB/s
all 30 samples
0
20
40
60
80
100
120
60
80
100
120
budget
p04 sequential median mib s
measured 99.184 MiB/s · pass · below: 30 samples, median 99.184 MiB/s (solid line), p95 87.901 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 15 MiB/s
all 30 samples
0
20
40
60
80
100
120
60
80
100
120
budget
p04 sequential median mib s
measured 99.184 MiB/s · pass · below: 30 samples, median 99.184 MiB/s (solid line), p95 87.901 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 12 MiB/s
all 30 samples
0
20
40
60
80
100
60
80
100
120
budget
p04 sequential p95 mib s
measured 87.901 MiB/s · pass · below: 30 samples, median 99.184 MiB/s (solid line), p95 87.901 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 12 MiB/s
all 30 samples
0
20
40
60
80
100
60
80
100
120
budget
p04 sequential p95 mib s
measured 87.901 MiB/s · pass · below: 30 samples, median 99.184 MiB/s (solid line), p95 87.901 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 16.600 MiB/s
all 30 samples
0
20
40
60
80
100
120
60
80
100
120
budget
Sequential throughput vs absolute 16.6 MiB/s floor
measured 99.184 MiB/s · pass · below: 30 samples, median 99.184 MiB/s (solid line), p95 87.901 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 16.600 MiB/s
all 30 samples
0
20
40
60
80
100
120
60
80
100
120
budget
Sequential throughput vs absolute 16.6 MiB/s floor
measured 99.184 MiB/s · pass · below: 30 samples, median 99.184 MiB/s (solid line), p95 87.901 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 100 MiB/s
all 15 samples
0
100
200
300
400
300
350
400
450
500
budget
p04 default thread mib s
measured 322.35 MiB/s · pass · below: 15 samples, median 423.56 MiB/s (solid line), p95 322.35 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 100 MiB/s
all 15 samples
0
100
200
300
400
300
350
400
450
500
budget
p04 default thread mib s
measured 322.35 MiB/s · pass · below: 15 samples, median 423.56 MiB/s (solid line), p95 322.35 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 12 MiB/s
all 15 samples
0
5
10
15
20
14
15
16
17
18
budget
p04 generalized control median mib s
measured 16.128 MiB/s · pass · below: 15 samples, median 16.128 MiB/s (solid line), p95 14.897 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 12 MiB/s
all 15 samples
0
5
10
15
20
14
15
16
17
18
budget
p04 generalized control median mib s
measured 16.128 MiB/s · pass · below: 15 samples, median 16.128 MiB/s (solid line), p95 14.897 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 10 MiB/s
all 15 samples
0
5
10
15
20
14
15
16
17
18
budget
p04 generalized control p95 mib s
measured 14.897 MiB/s · pass · below: 15 samples, median 16.128 MiB/s (solid line), p95 14.897 MiB/s (dotted line)
MiB/s
MiB/s
budget ≥ 10 MiB/s
all 15 samples
0
5
10
15
20
14
15
16
17
18
budget
p04 generalized control p95 mib s
measured 14.897 MiB/s · pass · below: 15 samples, median 16.128 MiB/s (solid line), p95 14.897 MiB/s (dotted line)
×
ms
budget ≤ 1.350×
half-size corpus
full generalized corpus
0
0.5
1
1.5
2
0
5
10
15
20
budget
p04 generalized control linear scaling
asserted ratio 1.009× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.350×
half-size corpus
full generalized corpus
0
0.5
1
1.5
2
0
5
10
15
20
budget
p04 generalized control linear scaling
asserted ratio 1.009× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
ms
ms
budget ≤ 110 ms
all 20 samples
0
30
60
90
120
150
2.5
2.75
3
3.25
3.5
3.75
budget
p05 stdin p95 ms
measured 3.364 ms · pass · below: 20 samples, median 2.926 ms (solid line), p95 3.364 ms (dotted line)
ms
ms
budget ≤ 110 ms
all 20 samples
0
30
60
90
120
150
2.5
2.75
3
3.25
3.5
3.75
budget
p05 stdin p95 ms
measured 3.364 ms · pass · below: 20 samples, median 2.926 ms (solid line), p95 3.364 ms (dotted line)
×
ms
budget ≤ 1.250×
official Oxfmt npm launcher
direct Rust TSRX stdin
0
0.3
0.6
0.9
1.2
1.5
0
10
20
30
40
budget
Direct Rust / official Oxfmt npm-launcher p95 ratio
asserted ratio 0.101× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.250×
official Oxfmt npm launcher
direct Rust TSRX stdin
0
0.3
0.6
0.9
1.2
1.5
0
10
20
30
40
budget
Direct Rust / official Oxfmt npm-launcher p95 ratio
asserted ratio 0.101× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
MiB
budget ≤ 1.300×
canonical TSX RSS
TSRX formatter RSS
0
0.3
0.6
0.9
1.2
1.5
0
50
100
150
200
250
budget
p07 rss ratio
asserted ratio 1.118× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
MiB
budget ≤ 1.300×
canonical TSX RSS
TSRX formatter RSS
0
0.3
0.6
0.9
1.2
1.5
0
50
100
150
200
250
budget
p07 rss ratio
asserted ratio 1.118× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
Opt-in type-aware lint
The opt-in TypeScript-Go lane. The default lane stays syntax-only with zero type processes. Report: benchmarks/type-aware/results-1789846873134.json (2026-09-19), every budget passed.
8 budgets, every budget passed. Show the numbers and the per-gate charts
Boundary Result Budget Status
Default syntax lint p95 3.449 ms ≤ 10 ms ✓ pass
Single-file type-aware p95 27.179 ms ≤ 60 ms ✓ pass
Two-file project type-aware p95 27.933 ms ≤ 70 ms ✓ pass
Single-file type-aware cold start 69.869 ms ≤ 100 ms ✓ pass
Two-file project cold start 27.410 ms ≤ 120 ms ✓ pass
Type-aware vs default p95 ratio 7.880 × ≤ 12 × ✓ pass
Type processes per batch 1 exactly 1 ✓ pass
Default path parse count per file 1 exactly 1 ✓ pass
ms
ms
budget ≤ 10 ms
all 20 samples
0
2
4
6
8
10
12
2
2.5
3
3.5
4
budget
Default syntax lint p95
measured 3.449 ms · pass · below: 20 samples, median 2.845 ms (solid line), p95 3.449 ms (dotted line)
ms
ms
budget ≤ 10 ms
all 20 samples
0
2
4
6
8
10
12
2
2.5
3
3.5
4
budget
Default syntax lint p95
measured 3.449 ms · pass · below: 20 samples, median 2.845 ms (solid line), p95 3.449 ms (dotted line)
ms
ms
budget ≤ 60 ms
all 20 samples
0
20
40
60
80
22
24
26
28
30
budget
Single-file type-aware p95
measured 27.179 ms · pass · below: 20 samples, median 25.227 ms (solid line), p95 27.179 ms (dotted line)
ms
ms
budget ≤ 60 ms
all 20 samples
0
20
40
60
80
22
24
26
28
30
budget
Single-file type-aware p95
measured 27.179 ms · pass · below: 20 samples, median 25.227 ms (solid line), p95 27.179 ms (dotted line)
ms
ms
budget ≤ 70 ms
all 20 samples
0
20
40
60
80
24
26
28
30
32
budget
Two-file project type-aware p95
measured 27.933 ms · pass · below: 20 samples, median 25.588 ms (solid line), p95 27.933 ms (dotted line)
ms
ms
budget ≤ 70 ms
all 20 samples
0
20
40
60
80
24
26
28
30
32
budget
Two-file project type-aware p95
measured 27.933 ms · pass · below: 20 samples, median 25.588 ms (solid line), p95 27.933 ms (dotted line)
ms
budget ≤ 100 ms
0
20
40
60
80
100
120
budget
Single-file type-aware cold start
single measurement per report: 69.869 ms · pass
ms
budget ≤ 100 ms
0
20
40
60
80
100
120
budget
Single-file type-aware cold start
single measurement per report: 69.869 ms · pass
ms
budget ≤ 120 ms
0
30
60
90
120
150
budget
Two-file project cold start
single measurement per report: 27.410 ms · pass
ms
budget ≤ 120 ms
0
30
60
90
120
150
budget
Two-file project cold start
single measurement per report: 27.410 ms · pass
×
ms
budget ≤ 12×
default syntax lane
single-file type-aware lane
0
3
6
9
12
15
0
10
20
30
40
budget
Type-aware vs default p95 ratio
asserted ratio 7.880× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 12×
default syntax lane
single-file type-aware lane
0
3
6
9
12
15
0
10
20
30
40
budget
Type-aware vs default p95 ratio
asserted ratio 7.880× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
Vite/Vite+ command boundary
Fresh companion processes at the ecosystem seam. Vite build and HMR carry zero OXC for TSRX transforms. Report: benchmarks/vite/results-1789846886123.json (2026-09-19), every budget passed.
8 budgets, every budget passed. Show the numbers and the per-gate charts
Boundary Result Budget Status
Mixed companion lint p95 65.685 ms ≤ 150 ms ✓ pass
Mixed lint vs canonical p95 ratio 1.926 × ≤ 2.500 × ✓ pass
Mixed companion format-check p95 66.569 ms ≤ 220 ms ✓ pass
Mixed format vs canonical p95 ratio 2.024 × ≤ 2.100 × ✓ pass
Ordinary npm formatter p95 36.928 ms ≤ 150 ms ✓ pass
Ordinary npm formatter vs canonical p95 ratio 1.123 × ≤ 1.250 × ✓ pass
Vite+ 0.2.4 mixed lint p95 296.54 ms ≤ 750 ms ✓ pass
Native TSRX parses per file 1 exactly 1 ✓ pass
ms
ms
budget ≤ 150 ms
all 20 samples
0
50
100
150
200
50
60
70
80
budget
Mixed companion lint p95
measured 65.685 ms · pass · below: 20 samples, median 62.336 ms (solid line), p95 65.685 ms (dotted line)
ms
ms
budget ≤ 150 ms
all 20 samples
0
50
100
150
200
50
60
70
80
budget
Mixed companion lint p95
measured 65.685 ms · pass · below: 20 samples, median 62.336 ms (solid line), p95 65.685 ms (dotted line)
×
ms
budget ≤ 2.500×
canonical lint
mixed companion lint
0
0.5
1
1.5
2
2.5
3
0
20
40
60
80
100
budget
Mixed lint vs canonical p95 ratio
asserted ratio 1.926× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 2.500×
canonical lint
mixed companion lint
0
0.5
1
1.5
2
2.5
3
0
20
40
60
80
100
budget
Mixed lint vs canonical p95 ratio
asserted ratio 1.926× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
ms
ms
budget ≤ 220 ms
all 20 samples
0
50
100
150
200
250
55
60
65
70
75
budget
Mixed companion format-check p95
measured 66.569 ms · pass · below: 20 samples, median 61.783 ms (solid line), p95 66.569 ms (dotted line)
ms
ms
budget ≤ 220 ms
all 20 samples
0
50
100
150
200
250
55
60
65
70
75
budget
Mixed companion format-check p95
measured 66.569 ms · pass · below: 20 samples, median 61.783 ms (solid line), p95 66.569 ms (dotted line)
×
ms
budget ≤ 2.100×
canonical format
mixed companion format
0
0.5
1
1.5
2
2.5
0
20
40
60
80
budget
Mixed format vs canonical p95 ratio
asserted ratio 2.024× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 2.100×
canonical format
mixed companion format
0
0.5
1
1.5
2
2.5
0
20
40
60
80
budget
Mixed format vs canonical p95 ratio
asserted ratio 2.024× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
ms
ms
budget ≤ 150 ms
all 20 samples
0
50
100
150
200
30
40
50
60
budget
Ordinary npm formatter p95
measured 36.928 ms · pass · below: 20 samples, median 35.609 ms (solid line), p95 36.928 ms (dotted line)
ms
ms
budget ≤ 150 ms
all 20 samples
0
50
100
150
200
30
40
50
60
budget
Ordinary npm formatter p95
measured 36.928 ms · pass · below: 20 samples, median 35.609 ms (solid line), p95 36.928 ms (dotted line)
×
ms
budget ≤ 1.250×
canonical format
ordinary npm formatter
0
0.3
0.6
0.9
1.2
1.5
0
10
20
30
40
50
60
budget
Ordinary npm formatter vs canonical p95 ratio
asserted ratio 1.123× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
×
ms
budget ≤ 1.250×
canonical format
ordinary npm formatter
0
0.3
0.6
0.9
1.2
1.5
0
10
20
30
40
50
60
budget
Ordinary npm formatter vs canonical p95 ratio
asserted ratio 1.123× · pass · below: the two runs it divides, sampled independently, so no per-sample ratios
ms
ms
budget ≤ 750 ms
all 20 samples
0
200
400
600
800
1000
260
280
300
320
budget
Vite+ 0.2.4 mixed lint p95
measured 296.54 ms · pass · below: 20 samples, median 277.05 ms (solid line), p95 296.54 ms (dotted line)
ms
ms
budget ≤ 750 ms
all 20 samples
0
200
400
600
800
1000
260
280
300
320
budget
Vite+ 0.2.4 mixed lint p95
measured 296.54 ms · pass · below: 20 samples, median 277.05 ms (solid line), p95 296.54 ms (dotted line)
Native editor server
Syntax-only local language-server round trips on the retained Markless fixture. Report: benchmarks/editor/results-1789846886872.json (2026-09-19), every budget passed.
6 budgets, every budget passed. Show the numbers and the per-gate charts
Boundary Result Budget Status
Server start to first diagnostics 3.857 ms ≤ 50 ms ✓ pass
Edit-to-diagnostics p95 0.169 ms ≤ 25 ms ✓ pass
Formatting p95 0.138 ms ≤ 15 ms ✓ pass
Safe code-action p95 0.155 ms ≤ 25 ms ✓ pass
RSS after 1,000-edit soak 10.625 MiB ≤ 96 MiB ✓ pass
RSS growth through soak 0 MiB ≤ 8 MiB ✓ pass
ms
budget ≤ 50 ms
0
10
20
30
40
50
60
budget
Server start to first diagnostics
single measurement per report: 3.857 ms · pass
ms
budget ≤ 50 ms
0
10
20
30
40
50
60
budget
Server start to first diagnostics
single measurement per report: 3.857 ms · pass
ms
ms
budget ≤ 25 ms
all 100 samples
0
5
10
15
20
25
30
0
0.1
0.2
0.3
0.4
budget
Edit-to-diagnostics p95
measured 0.169 ms · pass · below: 100 samples, median 0.097 ms (solid line), p95 0.169 ms (dotted line)
ms
ms
budget ≤ 25 ms
all 100 samples
0
5
10
15
20
25
30
0
0.1
0.2
0.3
0.4
budget
Edit-to-diagnostics p95
measured 0.169 ms · pass · below: 100 samples, median 0.097 ms (solid line), p95 0.169 ms (dotted line)
ms
ms
budget ≤ 15 ms
all 100 samples
0
5
10
15
20
0.05
0.1
0.15
0.2
0.25
0.3
budget
Formatting p95
measured 0.138 ms · pass · below: 100 samples, median 0.108 ms (solid line), p95 0.138 ms (dotted line)
ms
ms
budget ≤ 15 ms
all 100 samples
0
5
10
15
20
0.05
0.1
0.15
0.2
0.25
0.3
budget
Formatting p95
measured 0.138 ms · pass · below: 100 samples, median 0.108 ms (solid line), p95 0.138 ms (dotted line)
ms
ms
budget ≤ 25 ms
all 100 samples
0
5
10
15
20
25
30
0
0.1
0.2
0.3
0.4
budget
Safe code-action p95
measured 0.155 ms · pass · below: 100 samples, median 0.105 ms (solid line), p95 0.155 ms (dotted line)
ms
ms
budget ≤ 25 ms
all 100 samples
0
5
10
15
20
25
30
0
0.1
0.2
0.3
0.4
budget
Safe code-action p95
measured 0.155 ms · pass · below: 100 samples, median 0.105 ms (solid line), p95 0.155 ms (dotted line)
MiB
budget ≤ 96 MiB
0
20
40
60
80
100
120
budget
RSS after 1,000-edit soak
single measurement per report: 10.625 MiB · pass
MiB
budget ≤ 96 MiB
0
20
40
60
80
100
120
budget
RSS after 1,000-edit soak
single measurement per report: 10.625 MiB · pass
MiB
budget ≤ 8 MiB
0
2
4
6
8
10
budget
RSS growth through soak
single measurement per report: 0 MiB · pass
MiB
budget ≤ 8 MiB
0
2
4
6
8
10
budget
RSS growth through soak
single measurement per report: 0 MiB · pass
How a number gets on this page
Noise is handled by a fail-closed rerun policy rather than by picking a
favorable sample. A first report inside the 3% near-threshold band requires
exactly two additional fresh reports, and only the assertions that triggered get
two-of-three tolerance; everything else has to pass in all three. The
representative is chosen by median normalized budget pressure with a stable
report-path tie-break, never by taking the fastest run, and the aggregate fails
if the selected representative is red or if any failure lands more than 3%
beyond its threshold.
The harnesses are release-only, and memory-stats is linked into benchmark
executables only, never into the CLI you install. Make the authoritative release
decision with:
node tests/acceptance/run-performance.mjs