Measured performance
TypeScript at .NET speed
Reproducible benchmark evidence from the pinned SharpTS revision, led by the target that matters most: meeting or exceeding Node.js.
Primary benchmark
SharpTS vs Node.js
Each row compares the same TypeScript workload in the same run environment. The chart uses a logarithmic scale so unusually large wins or gaps do not hide ordinary results.
Array Methodsn=10000.82×Behind
array-methods/array-methods?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 5.48 ms | 3.97 ms | 2.88 ms | 55 | 1 |
| Compiled | 15.8 µs | 8.6 µs | 20.2 µs | 19013 | 1 |
| Node.js | 13 µs | 11.2 µs | 1.5 µs | 180 | 128 |
| Bun | Unavailable: unavailable | ||||
Array Methodsn=100000.84×Behind
array-methods/array-methods?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 38.3 ms | 13.1 ms | 20.1 ms | 8 | 1 |
| Compiled | 138 µs | 116 µs | 12.2 µs | 136 | 16 |
| Node.js | 116 µs | 112 µs | 4.1 µs | 162 | 16 |
| Bun | Unavailable: unavailable | ||||
Array Methodsn=1000001.77×Faster
array-methods/array-methods?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 125 ms | 115 ms | 12.4 ms | 8 | 1 |
| Compiled | 1.24 ms | 1.07 ms | 132 µs | 242 | 1 |
| Node.js | 2.2 ms | 1.89 ms | 457 µs | 137 | 1 |
| Bun | Unavailable: unavailable | ||||
Async Function Callsn=102×Faster
async-promises/async-function-calls?n=10
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 25.6 µs | 12.2 µs | 16.3 µs | 733 | 16 |
| Compiled | 200 ns | 100 ns | 100 ns | 212 | 8192 |
| Node.js | 400 ns | 300 ns | 0 ns | 198 | 4096 |
| Bun | Unavailable: unavailable | ||||
Async Function Callsn=10027×Faster
async-promises/async-function-calls?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 123 µs | 105 µs | 17.3 µs | 153 | 16 |
| Compiled | 100 ns | 100 ns | 0 ns | 252 | 8192 |
| Node.js | 2.7 µs | 2.5 µs | 200 ns | 220 | 512 |
| Bun | Unavailable: unavailable | ||||
Async Function Callsn=100049.6×Faster
async-promises/async-function-calls?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.32 ms | 1.01 ms | 1.26 ms | 228 | 1 |
| Compiled | 500 ns | 500 ns | 100 ns | 284 | 2048 |
| Node.js | 24.8 µs | 21.5 µs | 2.6 µs | 190 | 64 |
| Bun | Unavailable: unavailable | ||||
Async Resolved Awaitn=100.67×Behind
async-promises/async-resolved-await?n=10
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 74.6 µs | 45.5 µs | 254 µs | 4021 | 1 |
| Compiled | 600 ns | 300 ns | 14 µs | 100000 | 1 |
| Node.js | 400 ns | 300 ns | 100 ns | 178 | 4096 |
| Bun | Unavailable: unavailable | ||||
Async Resolved Awaitn=10028×Faster
async-promises/async-resolved-await?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 268 µs | 111 µs | 321 µs | 72 | 16 |
| Compiled | 100 ns | 100 ns | 0 ns | 264 | 8192 |
| Node.js | 2.8 µs | 2.5 µs | 300 ns | 211 | 512 |
| Bun | Unavailable: unavailable | ||||
Async Resolved Awaitn=100051.8×Faster
async-promises/async-resolved-await?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 2.41 ms | 1.06 ms | 3.78 ms | 126 | 1 |
| Compiled | 500 ns | 500 ns | 100 ns | 283 | 2048 |
| Node.js | 25.9 µs | 22.7 µs | 2.9 µs | 181 | 64 |
| Bun | Unavailable: unavailable | ||||
Promise Alln=100.45×Behind
async-promises/promise-all?n=10
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 70.7 µs | 33.1 µs | 454 µs | 4287 | 1 |
| Compiled | 1.1 µs | 700 ns | 15 µs | 100000 | 1 |
| Node.js | 500 ns | 400 ns | 0 ns | 158 | 4096 |
| Bun | Unavailable: unavailable | ||||
Promise Alln=1002.67×Faster
async-promises/promise-all?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 492 µs | 255 µs | 817 µs | 309 | 2 |
| Compiled | 1.2 µs | 800 ns | 500 ns | 237 | 1024 |
| Node.js | 3.2 µs | 2.8 µs | 400 ns | 182 | 512 |
| Bun | Unavailable: unavailable | ||||
Promise Alln=10005.39×Faster
async-promises/promise-all?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 4.68 ms | 2.47 ms | 3.61 ms | 66 | 1 |
| Compiled | 5.6 µs | 4.4 µs | 1.1 µs | 212 | 256 |
| Node.js | 30.2 µs | 27.1 µs | 2 µs | 156 | 64 |
| Bun | Unavailable: unavailable | ||||
Promise Then Chainn=100.17×Behind
async-promises/promise-then-chain?n=10
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 25.9 µs | 15.2 µs | 80.9 µs | 11575 | 1 |
| Compiled | 1.8 µs | 1 µs | 24.2 µs | 100000 | 1 |
| Node.js | 300 ns | 300 ns | 0 ns | 221 | 4096 |
| Bun | Unavailable: unavailable | ||||
Promise Then Chainn=1000.81×Behind
async-promises/promise-then-chain?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 197 µs | 135 µs | 101 µs | 191 | 8 |
| Compiled | 3.1 µs | 2.2 µs | 1.9 µs | 746 | 128 |
| Node.js | 2.5 µs | 2.2 µs | 300 ns | 234 | 512 |
| Bun | Unavailable: unavailable | ||||
Promise Then Chainn=10001.07×Faster
async-promises/promise-then-chain?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.74 ms | 1.28 ms | 609 µs | 172 | 1 |
| Compiled | 23.4 µs | 18 µs | 4.8 µs | 201 | 64 |
| Node.js | 25 µs | 21.2 µs | 3.2 µs | 376 | 32 |
| Bun | Unavailable: unavailable | ||||
Binary Treesn=121.33×Faster
binary-trees/binary-trees?n=12
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 34.5 ms | 16.2 ms | 13 ms | 9 | 1 |
| Compiled | 60.4 µs | 52.1 µs | 6.1 µs | 156 | 32 |
| Node.js | 80.5 µs | 70.1 µs | 8.2 µs | 233 | 16 |
| Bun | Unavailable: unavailable | ||||
Binary Treesn=160.97×Near parity
binary-trees/binary-trees?n=16
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 302 ms | 262 ms | 25.5 ms | 7 | 1 |
| Compiled | 1.44 ms | 787 µs | 1.08 ms | 209 | 1 |
| Node.js | 1.4 ms | 1.11 ms | 459 µs | 215 | 1 |
| Bun | Unavailable: unavailable | ||||
Binary Treesn=80.88×Behind
binary-trees/binary-trees?n=8
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 4.13 ms | 2.94 ms | 1.59 ms | 73 | 1 |
| Compiled | 4.9 µs | 3.3 µs | 8.4 µs | 61533 | 1 |
| Node.js | 4.3 µs | 3.9 µs | 300 ns | 274 | 256 |
| Bun | Unavailable: unavailable | ||||
Brainfuckn=500.75×Behind
brainfuck/brainfuck?n=50
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 110 ms | 54.4 ms | 94.9 ms | 8 | 1 |
| Compiled | 227 µs | 205 µs | 97.5 µs | 1320 | 1 |
| Node.js | 170 µs | 132 µs | 69.2 µs | 1761 | 1 |
| Bun | Unavailable: unavailable | ||||
Brainfuckn=5000.85×Behind
brainfuck/brainfuck?n=500
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 538 ms | 522 ms | 15.6 ms | 4 | 1 |
| Compiled | 2.11 ms | 2.05 ms | 82.2 µs | 143 | 1 |
| Node.js | 1.79 ms | 1.64 ms | 131 µs | 168 | 1 |
| Bun | Unavailable: unavailable | ||||
Brainfuckn=50000.83×Behind
brainfuck/brainfuck?n=5000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 5.73 s | 5.73 s | 0 ns | 1 | 1 |
| Compiled | 21.4 ms | 20.9 ms | 487 µs | 15 | 1 |
| Node.js | 17.8 ms | 17.1 ms | 446 µs | 17 | 1 |
| Bun | Unavailable: unavailable | ||||
Class Constructionn=10000.37×Behind
classes/class-construction?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.84 ms | 1.19 ms | 1.04 ms | 164 | 1 |
| Compiled | 800 ns | 500 ns | 800 ns | 771 | 512 |
| Node.js | 300 ns | 300 ns | 0 ns | 257 | 4096 |
| Bun | Unavailable: unavailable | ||||
Class Constructionn=100001.18×Faster
classes/class-construction?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 23 ms | 18.4 ms | 3.21 ms | 14 | 1 |
| Compiled | 4.5 µs | 4.2 µs | 500 ns | 526 | 128 |
| Node.js | 5.3 µs | 5 µs | 200 ns | 222 | 256 |
| Bun | Unavailable: unavailable | ||||
Class Constructionn=1000007.64×Faster
classes/class-construction?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 418 ms | 327 ms | 66.2 ms | 6 | 1 |
| Compiled | 42.7 µs | 39.7 µs | 3.4 µs | 220 | 32 |
| Node.js | 326 µs | 294 µs | 26.1 µs | 230 | 4 |
| Bun | Unavailable: unavailable | ||||
Class Field Reusen=10000.16×Behind
classes/class-field-reuse?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 2.95 ms | 2.43 ms | 1.12 ms | 102 | 1 |
| Compiled | 2.5 µs | 500 ns | 10.8 µs | 100000 | 1 |
| Node.js | 400 ns | 300 ns | 100 ns | 200 | 4096 |
| Bun | Unavailable: unavailable | ||||
Class Field Reusen=100001.23×Faster
classes/class-field-reuse?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 7.04 ms | 5.54 ms | 851 µs | 43 | 1 |
| Compiled | 5.2 µs | 4.9 µs | 400 ns | 227 | 256 |
| Node.js | 6.4 µs | 6 µs | 300 ns | 185 | 256 |
| Bun | Unavailable: unavailable | ||||
Class Field Reusen=1000001.64×Faster
classes/class-field-reuse?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 70 ms | 68.1 ms | 2.9 ms | 8 | 1 |
| Compiled | 51.3 µs | 48.9 µs | 2.5 µs | 183 | 32 |
| Node.js | 84.1 µs | 81.3 µs | 3.7 µs | 223 | 16 |
| Bun | Unavailable: unavailable | ||||
Class Method Inheritance Basen=10000.44×Behind
classes/class-method-inheritance-base?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 909 µs | 818 µs | 53.1 µs | 166 | 2 |
| Compiled | 900 ns | 500 ns | 2 µs | 2747 | 128 |
| Node.js | 400 ns | 300 ns | 0 ns | 201 | 4096 |
| Bun | Unavailable: unavailable | ||||
Class Method Inheritance Basen=100001.31×Faster
classes/class-method-inheritance-base?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 9.68 ms | 8.19 ms | 780 µs | 32 | 1 |
| Compiled | 4.9 µs | 4.6 µs | 200 ns | 240 | 256 |
| Node.js | 6.4 µs | 6 µs | 400 ns | 183 | 256 |
| Bun | Unavailable: unavailable | ||||
Class Method Inheritance Basen=1000001.74×Faster
classes/class-method-inheritance-base?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 103 ms | 96.7 ms | 4.73 ms | 8 | 1 |
| Compiled | 52.2 µs | 50.5 µs | 2.8 µs | 180 | 32 |
| Node.js | 90.9 µs | 88.3 µs | 3.1 µs | 207 | 16 |
| Bun | Unavailable: unavailable | ||||
Class Method Inheritedn=10000.91×Behind
classes/class-method-inherited?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 847 µs | 745 µs | 67.2 µs | 355 | 1 |
| Compiled | 1.1 µs | 500 ns | 2.2 µs | 2151 | 128 |
| Node.js | 1 µs | 1 µs | 0 ns | 147 | 2048 |
| Bun | Unavailable: unavailable | ||||
Class Method Inheritedn=100002.08×Faster
classes/class-method-inherited?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 9.77 ms | 8.32 ms | 659 µs | 31 | 1 |
| Compiled | 5.1 µs | 4.9 µs | 300 ns | 232 | 256 |
| Node.js | 10.6 µs | 10 µs | 500 ns | 222 | 128 |
| Bun | Unavailable: unavailable | ||||
Class Method Inheritedn=1000001.63×Faster
classes/class-method-inherited?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 108 ms | 105 ms | 1.45 ms | 8 | 1 |
| Compiled | 58.1 µs | 50.9 µs | 11.2 µs | 162 | 32 |
| Node.js | 94.8 µs | 87.5 µs | 4.1 µs | 198 | 16 |
| Bun | Unavailable: unavailable | ||||
Class Method Overriden=10000.36×Behind
classes/class-method-override?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 921 µs | 809 µs | 72.5 µs | 163 | 2 |
| Compiled | 2.8 µs | 600 ns | 12.1 µs | 100000 | 1 |
| Node.js | 1 µs | 1 µs | 0 ns | 147 | 2048 |
| Bun | Unavailable: unavailable | ||||
Class Method Overriden=100002.12×Faster
classes/class-method-override?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 9.95 ms | 7.66 ms | 892 µs | 31 | 1 |
| Compiled | 4.9 µs | 4.8 µs | 200 ns | 238 | 256 |
| Node.js | 10.4 µs | 10 µs | 300 ns | 225 | 128 |
| Bun | Unavailable: unavailable | ||||
Class Method Overriden=1000001.71×Faster
classes/class-method-override?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 113 ms | 107 ms | 5.99 ms | 8 | 1 |
| Compiled | 56.6 µs | 50.4 µs | 3 µs | 332 | 16 |
| Node.js | 96.8 µs | 90.2 µs | 4.6 µs | 194 | 16 |
| Bun | Unavailable: unavailable | ||||
Class Method Reusen=10000.5×Behind
classes/class-method-reuse?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 2.3 ms | 919 µs | 1.72 ms | 131 | 1 |
| Compiled | 800 ns | 500 ns | 1.6 µs | 3074 | 128 |
| Node.js | 400 ns | 300 ns | 0 ns | 199 | 4096 |
| Bun | Unavailable: unavailable | ||||
Class Method Reusen=100001.29×Faster
classes/class-method-reuse?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 9.64 ms | 8.07 ms | 745 µs | 32 | 1 |
| Compiled | 5.1 µs | 4.9 µs | 500 ns | 229 | 256 |
| Node.js | 6.6 µs | 6.1 µs | 900 ns | 178 | 256 |
| Bun | Unavailable: unavailable | ||||
Class Method Reusen=1000001.64×Faster
classes/class-method-reuse?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 101 ms | 94.5 ms | 3.55 ms | 8 | 1 |
| Compiled | 56.1 µs | 48.6 µs | 7.1 µs | 335 | 16 |
| Node.js | 91.9 µs | 88.5 µs | 5.1 µs | 205 | 16 |
| Bun | Unavailable: unavailable | ||||
Class Method Supern=10001×Near parity
classes/class-method-super?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.55 ms | 1.3 ms | 131 µs | 194 | 1 |
| Compiled | 1 µs | 500 ns | 2.2 µs | 2372 | 128 |
| Node.js | 1 µs | 1 µs | 100 ns | 295 | 1024 |
| Bun | Unavailable: unavailable | ||||
Class Method Supern=100002.02×Faster
classes/class-method-super?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 16.9 ms | 16.3 ms | 402 µs | 18 | 1 |
| Compiled | 5.3 µs | 4.9 µs | 400 ns | 222 | 256 |
| Node.js | 10.7 µs | 10.2 µs | 700 ns | 219 | 128 |
| Bun | Unavailable: unavailable | ||||
Class Method Supern=1000002.05×Faster
classes/class-method-super?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 217 ms | 201 ms | 12.1 ms | 8 | 1 |
| Compiled | 55.6 µs | 50.3 µs | 4.6 µs | 338 | 16 |
| Node.js | 114 µs | 111 µs | 3.3 µs | 165 | 16 |
| Bun | Unavailable: unavailable | ||||
Closuresn=10004.82×Faster
closures/closures?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 4.24 ms | 1.43 ms | 2.26 ms | 71 | 1 |
| Compiled | 3.8 µs | 1.6 µs | 7.3 µs | 78599 | 1 |
| Node.js | 18.3 µs | 14.3 µs | 2.8 µs | 128 | 128 |
| Bun | Unavailable: unavailable | ||||
Closuresn=100006.96×Faster
closures/closures?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 11.7 ms | 7.31 ms | 3.04 ms | 26 | 1 |
| Compiled | 20.3 µs | 17.7 µs | 3.3 µs | 232 | 64 |
| Node.js | 141 µs | 117 µs | 22 µs | 266 | 8 |
| Bun | Unavailable: unavailable | ||||
Closuresn=1000008.59×Faster
closures/closures?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 65.8 ms | 61.8 ms | 3.95 ms | 8 | 1 |
| Compiled | 210 µs | 187 µs | 32.6 µs | 180 | 8 |
| Node.js | 1.8 ms | 1.28 ms | 360 µs | 167 | 1 |
| Bun | Unavailable: unavailable | ||||
Count Primesn=10000.23×Behind
count-primes/count-primes?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 12.8 ms | 9.27 ms | 5.48 ms | 24 | 1 |
| Compiled | 12.4 µs | 6.2 µs | 19.6 µs | 24202 | 1 |
| Node.js | 2.8 µs | 2.5 µs | 300 ns | 209 | 512 |
| Bun | Unavailable: unavailable | ||||
Count Primesn=100000.5×Behind
count-primes/count-primes?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 59.8 ms | 24.3 ms | 37.4 ms | 8 | 1 |
| Compiled | 79.7 µs | 71.3 µs | 5.8 µs | 236 | 16 |
| Node.js | 39.6 µs | 36.4 µs | 3 µs | 237 | 32 |
| Bun | Unavailable: unavailable | ||||
Count Primesn=1000000.95×Near parity
count-primes/count-primes?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 256 ms | 215 ms | 28.7 ms | 8 | 1 |
| Compiled | 935 µs | 760 µs | 193 µs | 161 | 2 |
| Node.js | 891 µs | 721 µs | 183 µs | 169 | 2 |
| Bun | Unavailable: unavailable | ||||
Date Numericn=1000.32×Behind
date-numeric/date-numeric?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 378 µs | 287 µs | 323 µs | 795 | 1 |
| Compiled | 2.2 µs | 1.8 µs | 9.1 µs | 100000 | 1 |
| Node.js | 700 ns | 600 ns | 100 ns | 200 | 2048 |
| Bun | Unavailable: unavailable | ||||
Date Numericn=100001.32×Faster
date-numeric/date-numeric?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 12.6 ms | 5.59 ms | 12.5 ms | 24 | 1 |
| Compiled | 48.9 µs | 42.8 µs | 14.3 µs | 767 | 8 |
| Node.js | 64.6 µs | 56.3 µs | 5.9 µs | 291 | 16 |
| Bun | Unavailable: unavailable | ||||
Date Numericn=1000001.42×Faster
date-numeric/date-numeric?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 54.3 ms | 53.6 ms | 660 µs | 8 | 1 |
| Compiled | 465 µs | 433 µs | 21.2 µs | 162 | 4 |
| Node.js | 659 µs | 549 µs | 132 µs | 456 | 1 |
| Bun | Unavailable: unavailable | ||||
Throw Branch Controln=1000000.45×Behind
exceptions/throw-branch-control?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 96.9 ms | 43.9 ms | 93.7 ms | 8 | 1 |
| Compiled | 412 µs | 292 µs | 586 µs | 729 | 1 |
| Node.js | 186 µs | 116 µs | 381 µs | 1613 | 1 |
| Bun | Unavailable: unavailable | ||||
Throw Errorn=1000000.37×Behind
exceptions/throw-error?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 101 ms | 64.1 ms | 23.5 ms | 8 | 1 |
| Compiled | 4.97 ms | 1.95 ms | 6.02 ms | 65 | 1 |
| Node.js | 1.84 ms | 718 µs | 4.28 ms | 164 | 1 |
| Bun | Unavailable: unavailable | ||||
Throw Primitiven=1000000.73×Behind
exceptions/throw-primitive?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 120 ms | 69.7 ms | 24.3 ms | 8 | 1 |
| Compiled | 415 µs | 270 µs | 242 µs | 724 | 1 |
| Node.js | 302 µs | 170 µs | 824 µs | 254 | 4 |
| Bun | Unavailable: unavailable | ||||
Throw Try Catch No Thrown=1000000.43×Behind
exceptions/throw-try-catch-no-throw?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 81.2 ms | 53.3 ms | 26.3 ms | 8 | 1 |
| Compiled | 414 µs | 295 µs | 588 µs | 725 | 1 |
| Node.js | 178 µs | 117 µs | 67.5 µs | 211 | 8 |
| Bun | Unavailable: unavailable | ||||
Factorialn=1000.09×Behind
factorial/factorial?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 167 µs | 49 µs | 281 µs | 1796 | 1 |
| Compiled | 1.1 µs | 800 ns | 6.5 µs | 100000 | 1 |
| Node.js | 100 ns | 100 ns | 0 ns | 306 | 16384 |
| Bun | Unavailable: unavailable | ||||
Factorialn=10000.56×Behind
factorial/factorial?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 424 µs | 337 µs | 69.3 µs | 177 | 4 |
| Compiled | 1.6 µs | 1 µs | 1.3 µs | 749 | 256 |
| Node.js | 900 ns | 900 ns | 0 ns | 315 | 1024 |
| Bun | Unavailable: unavailable | ||||
Factorialn=100000.94×Behind
factorial/factorial?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 3.44 ms | 3.01 ms | 250 µs | 88 | 1 |
| Compiled | 9.7 µs | 9.3 µs | 400 ns | 243 | 128 |
| Node.js | 9.1 µs | 8.5 µs | 400 ns | 257 | 128 |
| Bun | Unavailable: unavailable | ||||
Fibonaccin=100.71×Behind
fibonacci/fibonacci?n=10
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 496 µs | 383 µs | 463 µs | 605 | 1 |
| Compiled | 1.4 µs | 800 ns | 17.9 µs | 100000 | 1 |
| Node.js | 1 µs | 600 ns | 400 ns | 294 | 1024 |
| Bun | Unavailable: unavailable | ||||
Fibonaccin=202.37×Faster
fibonacci/fibonacci?n=20
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 38.2 ms | 10.2 ms | 23.6 ms | 8 | 1 |
| Compiled | 51.6 µs | 37.6 µs | 25.6 µs | 364 | 16 |
| Node.js | 123 µs | 83.3 µs | 40.3 µs | 307 | 8 |
| Bun | Unavailable: unavailable | ||||
Fibonaccin=300.8×Behind
fibonacci/fibonacci?n=30
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.18 s | 1.15 s | 39.1 ms | 2 | 1 |
| Compiled | 16.8 ms | 4.46 ms | 19.9 ms | 18 | 1 |
| Node.js | 13.5 ms | 12.1 ms | 1.08 ms | 23 | 1 |
| Bun | Unavailable: unavailable | ||||
Fibonaccin=352.25×Faster
fibonacci/fibonacci?n=35
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 13.4 s | 13.4 s | 0 ns | 1 | 1 |
| Compiled | 64.5 ms | 51.3 ms | 7.67 ms | 8 | 1 |
| Node.js | 145 ms | 140 ms | 3.29 ms | 8 | 1 |
| Bun | Unavailable: unavailable | ||||
Accumulaten=10001.13×Faster
int-arrays/accumulate?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 3.9 ms | 2.82 ms | 464 µs | 77 | 1 |
| Compiled | 4.5 µs | 3.5 µs | 1.3 µs | 260 | 256 |
| Node.js | 5.1 µs | 3.2 µs | 900 ns | 229 | 256 |
| Bun | Unavailable: unavailable | ||||
Accumulaten=1000000.96×Near parity
int-arrays/accumulate?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 264 ms | 244 ms | 17.8 ms | 8 | 1 |
| Compiled | 496 µs | 459 µs | 41.6 µs | 152 | 4 |
| Node.js | 476 µs | 388 µs | 246 µs | 158 | 4 |
| Bun | Unavailable: unavailable | ||||
Accumulaten=10000000.94×Behind
int-arrays/accumulate?n=1000000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 2.63 s | 2.63 s | 0 ns | 1 | 1 |
| Compiled | 3.96 ms | 3.38 ms | 418 µs | 76 | 1 |
| Node.js | 3.74 ms | 3.35 ms | 371 µs | 81 | 1 |
| Bun | Unavailable: unavailable | ||||
Int32 Kerneln=10000.7×Behind
int-arrays/int32-kernel?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 5.58 ms | 2.01 ms | 3.44 ms | 54 | 1 |
| Compiled | 4 µs | 2 µs | 10.1 µs | 75452 | 1 |
| Node.js | 2.8 µs | 2.3 µs | 300 ns | 206 | 512 |
| Bun | Unavailable: unavailable | ||||
Int32 Kerneln=1000000.95×Near parity
int-arrays/int32-kernel?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 133 ms | 116 ms | 22.3 ms | 8 | 1 |
| Compiled | 292 µs | 268 µs | 38.1 µs | 129 | 8 |
| Node.js | 278 µs | 228 µs | 132 µs | 135 | 8 |
| Bun | Unavailable: unavailable | ||||
Int32 Kerneln=10000000.79×Behind
int-arrays/int32-kernel?n=1000000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.2 s | 1.16 s | 48.5 ms | 2 | 1 |
| Compiled | 2.76 ms | 2.59 ms | 166 µs | 109 | 1 |
| Node.js | 2.19 ms | 1.98 ms | 239 µs | 138 | 1 |
| Bun | Unavailable: unavailable | ||||
Jsonn=1001.3×Faster
json/json?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.08 ms | 726 µs | 1.56 ms | 279 | 1 |
| Compiled | 16.4 µs | 7.8 µs | 190 µs | 18255 | 1 |
| Node.js | 21.3 µs | 19.2 µs | 2.9 µs | 221 | 64 |
| Bun | Unavailable: unavailable | ||||
Jsonn=10002.2×Faster
json/json?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 12.7 ms | 11.4 ms | 1.63 ms | 24 | 1 |
| Compiled | 93.5 µs | 76.5 µs | 12.1 µs | 201 | 16 |
| Node.js | 205 µs | 176 µs | 29.4 µs | 183 | 8 |
| Bun | Unavailable: unavailable | ||||
Jsonn=100000.62×Behind
json/json?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 57 ms | 27.1 ms | 22.6 ms | 8 | 1 |
| Compiled | 3.91 ms | 867 µs | 4.94 ms | 77 | 1 |
| Node.js | 2.44 ms | 2.03 ms | 355 µs | 123 | 1 |
| Bun | Unavailable: unavailable | ||||
Flattened Rest Controln=10000.19×Behind
language-hot-paths/flattened-rest-control?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 356 µs | 301 µs | 36.1 µs | 211 | 4 |
| Compiled | 2.1 µs | 1.5 µs | 1.2 µs | 556 | 256 |
| Node.js | 400 ns | 400 ns | 0 ns | 174 | 4096 |
| Bun | Unavailable: unavailable | ||||
Flattened Rest Controln=100000.4×Behind
language-hot-paths/flattened-rest-control?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 3.66 ms | 3.36 ms | 224 µs | 82 | 1 |
| Compiled | 16.3 µs | 15.5 µs | 1 µs | 144 | 128 |
| Node.js | 6.6 µs | 5.2 µs | 1.2 µs | 178 | 256 |
| Bun | Unavailable: unavailable | ||||
Flattened Rest Controln=1000001.17×Faster
language-hot-paths/flattened-rest-control?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 34 ms | 33.2 ms | 568 µs | 9 | 1 |
| Compiled | 164 µs | 155 µs | 6.5 µs | 229 | 8 |
| Node.js | 192 µs | 181 µs | 9 µs | 196 | 8 |
| Bun | Unavailable: unavailable | ||||
Format Fixedn=10000.6×Behind
language-hot-paths/format-fixed?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 881 µs | 706 µs | 165 µs | 341 | 1 |
| Compiled | 106 µs | 39.1 µs | 94.4 µs | 2822 | 1 |
| Node.js | 63.6 µs | 59.5 µs | 5.4 µs | 148 | 32 |
| Bun | Unavailable: unavailable | ||||
Format Fixedn=100002.27×Faster
language-hot-paths/format-fixed?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 7.95 ms | 7.46 ms | 287 µs | 38 | 1 |
| Compiled | 461 µs | 423 µs | 42.2 µs | 326 | 2 |
| Node.js | 1.05 ms | 928 µs | 158 µs | 287 | 1 |
| Bun | Unavailable: unavailable | ||||
Format Fixedn=1000001.79×Faster
language-hot-paths/format-fixed?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 79.9 ms | 77.7 ms | 1.79 ms | 8 | 1 |
| Compiled | 4.75 ms | 4.46 ms | 291 µs | 64 | 1 |
| Node.js | 8.5 ms | 7.84 ms | 299 µs | 36 | 1 |
| Bun | Unavailable: unavailable | ||||
Generator Rangen=10002.56×Faster
language-hot-paths/generator-range?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.77 ms | 1.22 ms | 1.18 ms | 170 | 1 |
| Compiled | 3.6 µs | 1.9 µs | 5.6 µs | 1292 | 64 |
| Node.js | 9.2 µs | 8.3 µs | 900 ns | 255 | 128 |
| Bun | Unavailable: unavailable | ||||
Generator Rangen=1000010.6×Faster
language-hot-paths/generator-range?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 13.9 ms | 12.5 ms | 1.05 ms | 22 | 1 |
| Compiled | 20 µs | 19.1 µs | 1.5 µs | 235 | 64 |
| Node.js | 213 µs | 149 µs | 60.5 µs | 177 | 8 |
| Bun | Unavailable: unavailable | ||||
Generator Rangen=1000004.9×Faster
language-hot-paths/generator-range?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 132 ms | 121 ms | 5.9 ms | 8 | 1 |
| Compiled | 239 µs | 200 µs | 28.1 µs | 157 | 8 |
| Node.js | 1.17 ms | 1 ms | 88.5 µs | 257 | 1 |
| Bun | Unavailable: unavailable | ||||
Numeric Assignment Controln=10000.5×Behind
language-hot-paths/numeric-assignment-control?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 296 µs | 255 µs | 46.7 µs | 254 | 4 |
| Compiled | 600 ns | 400 ns | 600 ns | 1037 | 512 |
| Node.js | 300 ns | 300 ns | 0 ns | 253 | 4096 |
| Bun | Unavailable: unavailable | ||||
Numeric Assignment Controln=100000.93×Behind
language-hot-paths/numeric-assignment-control?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 2.74 ms | 2.45 ms | 204 µs | 110 | 1 |
| Compiled | 4.2 µs | 4 µs | 300 ns | 283 | 256 |
| Node.js | 3.9 µs | 3.7 µs | 300 ns | 149 | 512 |
| Bun | Unavailable: unavailable | ||||
Numeric Assignment Controln=1000001.91×Faster
language-hot-paths/numeric-assignment-control?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 26.9 ms | 26.1 ms | 606 µs | 12 | 1 |
| Compiled | 42.9 µs | 41.2 µs | 2.6 µs | 219 | 32 |
| Node.js | 82 µs | 68.4 µs | 17.3 µs | 229 | 16 |
| Bun | Unavailable: unavailable | ||||
Numeric Compoundn=10000.15×Behind
language-hot-paths/numeric-compound?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.2 ms | 362 µs | 1.28 ms | 250 | 1 |
| Compiled | 2 µs | 400 ns | 5.4 µs | 100000 | 1 |
| Node.js | 300 ns | 300 ns | 0 ns | 254 | 4096 |
| Bun | Unavailable: unavailable | ||||
Numeric Compoundn=100000.88×Behind
language-hot-paths/numeric-compound?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 3.66 ms | 3.26 ms | 216 µs | 82 | 1 |
| Compiled | 4.2 µs | 4 µs | 300 ns | 281 | 256 |
| Node.js | 3.7 µs | 3.6 µs | 200 ns | 157 | 512 |
| Bun | Unavailable: unavailable | ||||
Numeric Compoundn=1000002.19×Faster
language-hot-paths/numeric-compound?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 37 ms | 35.5 ms | 1.46 ms | 9 | 1 |
| Compiled | 41.7 µs | 39.6 µs | 3.4 µs | 226 | 32 |
| Node.js | 91.5 µs | 78.8 µs | 22.8 µs | 206 | 16 |
| Bun | Unavailable: unavailable | ||||
Parse Integersn=10007.67×Faster
language-hot-paths/parse-integers?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 838 µs | 608 µs | 316 µs | 359 | 1 |
| Compiled | 600 ns | 400 ns | 700 ns | 927 | 512 |
| Node.js | 4.6 µs | 4.4 µs | 400 ns | 255 | 256 |
| Bun | Unavailable: unavailable | ||||
Parse Integersn=1000020×Faster
language-hot-paths/parse-integers?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 6.67 ms | 6.09 ms | 394 µs | 46 | 1 |
| Compiled | 4.2 µs | 4 µs | 200 ns | 282 | 256 |
| Node.js | 84 µs | 73.6 µs | 18.2 µs | 224 | 16 |
| Bun | Unavailable: unavailable | ||||
Parse Integersn=10000035.7×Faster
language-hot-paths/parse-integers?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 68.5 ms | 64.2 ms | 2.41 ms | 8 | 1 |
| Compiled | 43.1 µs | 39.6 µs | 4.5 µs | 218 | 32 |
| Node.js | 1.54 ms | 1.33 ms | 226 µs | 196 | 1 |
| Bun | Unavailable: unavailable | ||||
Stable Numeric Restn=10000.3×Behind
language-hot-paths/stable-numeric-rest?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 947 µs | 825 µs | 96.8 µs | 317 | 1 |
| Compiled | 1 µs | 600 ns | 1.1 µs | 597 | 512 |
| Node.js | 300 ns | 300 ns | 200 ns | 7420 | 128 |
| Bun | Unavailable: unavailable | ||||
Stable Numeric Restn=100001.14×Faster
language-hot-paths/stable-numeric-rest?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 9.43 ms | 8.68 ms | 515 µs | 32 | 1 |
| Compiled | 5.8 µs | 5.5 µs | 400 ns | 204 | 256 |
| Node.js | 6.6 µs | 6.3 µs | 500 ns | 179 | 256 |
| Bun | Unavailable: unavailable | ||||
Stable Numeric Restn=1000007.21×Faster
language-hot-paths/stable-numeric-rest?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 95.3 ms | 93.2 ms | 1.71 ms | 8 | 1 |
| Compiled | 59.7 µs | 55 µs | 3.8 µs | 158 | 32 |
| Node.js | 430 µs | 72.4 µs | 432 µs | 699 | 1 |
| Bun | Unavailable: unavailable | ||||
Map Iterationn=1000.66×Behind
map-set/map-iteration?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 188 µs | 95.8 µs | 65.1 µs | 1596 | 1 |
| Compiled | 3.2 µs | 2.1 µs | 1.7 µs | 369 | 256 |
| Node.js | 2.1 µs | 1.9 µs | 100 ns | 275 | 512 |
| Bun | Unavailable: unavailable | ||||
Map Iterationn=10000.64×Behind
map-set/map-iteration?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.03 ms | 906 µs | 114 µs | 146 | 2 |
| Compiled | 23.5 µs | 20.3 µs | 1.7 µs | 200 | 64 |
| Node.js | 15 µs | 13.3 µs | 2.4 µs | 312 | 64 |
| Bun | Unavailable: unavailable | ||||
Map Iterationn=100000.84×Behind
map-set/map-iteration?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 14.5 ms | 10.7 ms | 4.44 ms | 21 | 1 |
| Compiled | 513 µs | 273 µs | 228 µs | 293 | 2 |
| Node.js | 432 µs | 367 µs | 140 µs | 348 | 2 |
| Bun | Unavailable: unavailable | ||||
Map Operationsn=1000.49×Behind
map-set/map-operations?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 997 µs | 488 µs | 779 µs | 301 | 1 |
| Compiled | 4.7 µs | 1.6 µs | 13.7 µs | 64369 | 1 |
| Node.js | 2.3 µs | 2 µs | 100 ns | 254 | 512 |
| Bun | Unavailable: unavailable | ||||
Map Operationsn=10001.07×Faster
map-set/map-operations?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.92 ms | 1.58 ms | 233 µs | 157 | 1 |
| Compiled | 18.4 µs | 16.5 µs | 1.4 µs | 255 | 64 |
| Node.js | 19.6 µs | 15.7 µs | 2.5 µs | 240 | 64 |
| Bun | Unavailable: unavailable | ||||
Map Operationsn=100001.52×Faster
map-set/map-operations?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 23.3 ms | 21.6 ms | 1.3 ms | 13 | 1 |
| Compiled | 358 µs | 206 µs | 113 µs | 105 | 8 |
| Node.js | 543 µs | 452 µs | 269 µs | 553 | 1 |
| Bun | Unavailable: unavailable | ||||
Set Iterationn=1000.5×Behind
map-set/set-iteration?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 73.3 µs | 62.2 µs | 10.6 µs | 256 | 16 |
| Compiled | 3.8 µs | 2.5 µs | 1.8 µs | 310 | 256 |
| Node.js | 1.9 µs | 1.6 µs | 400 ns | 153 | 1024 |
| Bun | Unavailable: unavailable | ||||
Set Iterationn=10000.45×Behind
map-set/set-iteration?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 786 µs | 688 µs | 102 µs | 191 | 2 |
| Compiled | 26.1 µs | 23 µs | 1.9 µs | 180 | 64 |
| Node.js | 11.8 µs | 10.4 µs | 1.1 µs | 199 | 128 |
| Bun | Unavailable: unavailable | ||||
Set Iterationn=100000.81×Behind
map-set/set-iteration?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 9.78 ms | 6.73 ms | 2.91 ms | 31 | 1 |
| Compiled | 444 µs | 243 µs | 349 µs | 678 | 1 |
| Node.js | 362 µs | 295 µs | 161 µs | 208 | 4 |
| Bun | Unavailable: unavailable | ||||
Set Operationsn=1000.4×Behind
map-set/set-operations?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 152 µs | 126 µs | 43.1 µs | 1981 | 1 |
| Compiled | 4.2 µs | 2.4 µs | 2.5 µs | 556 | 128 |
| Node.js | 1.7 µs | 1.6 µs | 100 ns | 175 | 1024 |
| Bun | Unavailable: unavailable | ||||
Set Operationsn=10000.65×Behind
map-set/set-operations?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.63 ms | 1.41 ms | 192 µs | 184 | 1 |
| Compiled | 27.9 µs | 22.8 µs | 4.7 µs | 337 | 32 |
| Node.js | 18.1 µs | 15.8 µs | 2.1 µs | 259 | 64 |
| Bun | Unavailable: unavailable | ||||
Set Operationsn=100000.95×Behind
map-set/set-operations?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 16.1 ms | 14.6 ms | 1.02 ms | 19 | 1 |
| Compiled | 529 µs | 284 µs | 224 µs | 142 | 4 |
| Node.js | 501 µs | 426 µs | 194 µs | 300 | 2 |
| Bun | Unavailable: unavailable | ||||
Num Pushn=10000.62×Behind
num-arrays/num-push?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.47 ms | 816 µs | 349 µs | 205 | 1 |
| Compiled | 5.2 µs | 3.1 µs | 5.2 µs | 900 | 64 |
| Node.js | 3.2 µs | 2.9 µs | 200 ns | 186 | 512 |
| Bun | Unavailable: unavailable | ||||
Num Pushn=1000000.93×Behind
num-arrays/num-push?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 114 ms | 98.2 ms | 14.5 ms | 8 | 1 |
| Compiled | 777 µs | 682 µs | 201 µs | 194 | 2 |
| Node.js | 719 µs | 553 µs | 524 µs | 421 | 1 |
| Bun | Unavailable: unavailable | ||||
Num Pushn=10000001.6×Faster
num-arrays/num-push?n=1000000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.03 s | 1.01 s | 20.7 ms | 2 | 1 |
| Compiled | 5.38 ms | 3.94 ms | 1.48 ms | 56 | 1 |
| Node.js | 8.61 ms | 7.42 ms | 833 µs | 35 | 1 |
| Bun | Unavailable: unavailable | ||||
Num Writen=10000.08×Behind
num-arrays/num-write?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 4.36 ms | 3.24 ms | 2.48 ms | 69 | 1 |
| Compiled | 32.6 µs | 25 µs | 38 µs | 9213 | 1 |
| Node.js | 2.7 µs | 2.5 µs | 300 ns | 214 | 512 |
| Bun | Unavailable: unavailable | ||||
Num Writen=1000000.95×Behind
num-arrays/num-write?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 110 ms | 82.9 ms | 57.4 ms | 8 | 1 |
| Compiled | 801 µs | 716 µs | 93.6 µs | 188 | 2 |
| Node.js | 758 µs | 575 µs | 209 µs | 198 | 2 |
| Bun | Unavailable: unavailable | ||||
Num Writen=10000001.5×Faster
num-arrays/num-write?n=1000000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 922 ms | 877 ms | 39.6 ms | 3 | 1 |
| Compiled | 5.73 ms | 4.34 ms | 1.51 ms | 53 | 1 |
| Node.js | 8.59 ms | 6.76 ms | 2.14 ms | 35 | 1 |
| Bun | Unavailable: unavailable | ||||
Objectsn=10000.5×Behind
objects/objects?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 2.03 ms | 528 µs | 1.66 ms | 148 | 1 |
| Compiled | 2.4 µs | 800 ns | 6 µs | 100000 | 1 |
| Node.js | 1.2 µs | 700 ns | 1 µs | 126 | 2048 |
| Bun | Unavailable: unavailable | ||||
Objectsn=100002.72×Faster
objects/objects?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 5.67 ms | 5.15 ms | 339 µs | 53 | 1 |
| Compiled | 8.3 µs | 7.9 µs | 700 ns | 281 | 128 |
| Node.js | 22.6 µs | 14.4 µs | 7.1 µs | 104 | 128 |
| Bun | Unavailable: unavailable | ||||
Objectsn=1000004.63×Faster
objects/objects?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 56 ms | 54.6 ms | 1.36 ms | 8 | 1 |
| Compiled | 87.4 µs | 78.2 µs | 7.2 µs | 215 | 16 |
| Node.js | 405 µs | 143 µs | 292 µs | 742 | 1 |
| Bun | Unavailable: unavailable | ||||
Regex Validatorn=1000.35×Behind
regex-validator/regex-validator?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 4.26 ms | 1.66 ms | 6.86 ms | 71 | 1 |
| Compiled | 17.3 µs | 5.4 µs | 205 µs | 17305 | 1 |
| Node.js | 6 µs | 3.1 µs | 1.2 µs | 195 | 256 |
| Bun | Unavailable: unavailable | ||||
Regex Validatorn=100000.76×Behind
regex-validator/regex-validator?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 191 ms | 62.3 ms | 136 ms | 8 | 1 |
| Compiled | 799 µs | 559 µs | 171 µs | 188 | 2 |
| Node.js | 605 µs | 268 µs | 122 µs | 496 | 1 |
| Bun | Unavailable: unavailable | ||||
Regex Validatorn=1000000.75×Behind
regex-validator/regex-validator?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 850 ms | 719 ms | 119 ms | 3 | 1 |
| Compiled | 8.41 ms | 6.3 ms | 1.4 ms | 36 | 1 |
| Node.js | 6.28 ms | 5.11 ms | 647 µs | 48 | 1 |
| Bun | Unavailable: unavailable | ||||
Regexn=1000.15×Behind
regex/regex?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 371 µs | 109 µs | 942 µs | 809 | 1 |
| Compiled | 227 µs | 96.9 µs | 790 µs | 1320 | 1 |
| Node.js | 34.6 µs | 27.1 µs | 7 µs | 136 | 64 |
| Bun | Unavailable: unavailable | ||||
Regexn=10000.47×Behind
regex/regex?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 464 µs | 377 µs | 121 µs | 324 | 2 |
| Compiled | 804 µs | 545 µs | 307 µs | 187 | 2 |
| Node.js | 380 µs | 265 µs | 136 µs | 395 | 2 |
| Bun | Unavailable: unavailable | ||||
Regexn=100000.74×Behind
regex/regex?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 3.9 ms | 3.3 ms | 1.15 ms | 78 | 1 |
| Compiled | 6.1 ms | 4.83 ms | 967 µs | 50 | 1 |
| Node.js | 4.5 ms | 2.84 ms | 1.75 ms | 68 | 1 |
| Bun | Unavailable: unavailable | ||||
Sortn=1000.11×Behind
sort/sort?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 521 µs | 437 µs | 438 µs | 576 | 1 |
| Compiled | 83.3 µs | 64.6 µs | 115 µs | 3601 | 1 |
| Node.js | 9.1 µs | 7.9 µs | 1.4 µs | 257 | 128 |
| Bun | Unavailable: unavailable | ||||
Sortn=10000.87×Behind
sort/sort?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 10.5 ms | 9.38 ms | 2.14 ms | 29 | 1 |
| Compiled | 266 µs | 165 µs | 192 µs | 565 | 2 |
| Node.js | 230 µs | 206 µs | 13.8 µs | 164 | 8 |
| Bun | Unavailable: unavailable | ||||
Sortn=100001.06×Faster
sort/sort?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 35.3 ms | 26 ms | 10.2 ms | 9 | 1 |
| Compiled | 2.77 ms | 2.37 ms | 616 µs | 109 | 1 |
| Node.js | 2.94 ms | 2.69 ms | 189 µs | 103 | 1 |
| Bun | Unavailable: unavailable | ||||
Stringsn=1000.37×Behind
strings/strings?n=100
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 918 µs | 678 µs | 723 µs | 327 | 1 |
| Compiled | 2.7 µs | 2 µs | 5.8 µs | 100000 | 1 |
| Node.js | 1 µs | 900 ns | 100 ns | 289 | 1024 |
| Bun | Unavailable: unavailable | ||||
Stringsn=10000.93×Behind
strings/strings?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 5.18 ms | 1.86 ms | 2.38 ms | 58 | 1 |
| Compiled | 9.6 µs | 7.7 µs | 2.2 µs | 246 | 128 |
| Node.js | 8.9 µs | 8 µs | 800 ns | 264 | 128 |
| Bun | Unavailable: unavailable | ||||
Stringsn=100001.19×Faster
strings/strings?n=10000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 26 ms | 23.7 ms | 2.02 ms | 12 | 1 |
| Compiled | 80.9 µs | 75.5 µs | 2.7 µs | 232 | 16 |
| Node.js | 96.4 µs | 80.8 µs | 15.2 µs | 195 | 16 |
| Bun | Unavailable: unavailable | ||||
Typed Arraysn=10001.03×Near parity
typed-arrays/typed-arrays?n=1000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 6.77 ms | 5.14 ms | 2.33 ms | 45 | 1 |
| Compiled | 3.7 µs | 2 µs | 7.9 µs | 81564 | 1 |
| Node.js | 3.8 µs | 2.2 µs | 1.9 µs | 621 | 128 |
| Bun | Unavailable: unavailable | ||||
Typed Arraysn=1000001.19×Faster
typed-arrays/typed-arrays?n=100000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 175 ms | 123 ms | 63 ms | 8 | 1 |
| Compiled | 330 µs | 248 µs | 72.4 µs | 456 | 2 |
| Node.js | 392 µs | 330 µs | 219 µs | 192 | 4 |
| Bun | Unavailable: unavailable | ||||
Typed Arraysn=10000001.25×Faster
typed-arrays/typed-arrays?n=1000000
Raw measurements
| Mean | Minimum | Standard deviation | Samples | Inner iterations | |
|---|---|---|---|---|---|
| Interpreter | 1.2 s | 1.16 s | 58.2 ms | 2 | 1 |
| Compiled | 2.24 ms | 1.93 ms | 304 µs | 134 | 1 |
| Node.js | 2.79 ms | 2.57 ms | 285 µs | 108 | 1 |
| Bun | Unavailable: unavailable | ||||
No benchmarks match these filters.
Showing 128 benchmark cases.
Engineering ceiling
Compiler headroom
SharpTS-compiled TypeScript compared with equivalent dynamic C# and idiomatic C# within each BenchmarkDotNet run.
No reviewed compiler-micro snapshot is checked into this SharpTS revision yet. The dashboard is ready for the next published schema-v2 run.
Release guardrails
Desktop performance budgets
GUI latency, allocation, startup, memory, and shipping-size evidence stays separate from the Node comparison.
No reviewed GUI snapshot is checked into this SharpTS revision yet. Missing evidence is never shown as zero or as a passing budget.
Read the evidence
Methodology and provenance
Absolute measurements are only compared inside one machine-bound run. Different suites and environments are never combined.
- Environment
- Microsoft Windows 10.0.29639 · x64 · Intel64 Family 6 Model 183 Stepping 1, GenuineIntel
- Toolchain
- .NET 10.0.400 · interpreter 0b93b1119bd1e27cbd07e83211fa31568e6ac596 · compiled 0b93b1119bd1e27cbd07e83211fa31568e6ac596 · node v24.19.0
- Timing scope
- inProcessWorkload · performance.now
- Includes
- one workload function invocation
- Excludes
- process startup; script loading; SharpTS compilation; warmup; batch calibration