实测性能
以 .NET 速度运行 TypeScript
来自固定 SharpTS 版本的可复现基准数据,首先回答最重要的目标:达到或超过 Node.js。
主要基准
SharpTS 与 Node.js
每一行都在同一环境中比较相同的 TypeScript 工作负载。图表采用对数刻度,避免极端结果掩盖常规差异。
Array Methodsn=10000.82×较慢
array-methods/array-methods?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 5.48 ms | 3.97 ms | 2.88 ms | 55 | 1 |
| 编译 | 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 | ||||
Array Methodsn=100000.84×较慢
array-methods/array-methods?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 38.3 ms | 13.1 ms | 20.1 ms | 8 | 1 |
| 编译 | 138 µs | 116 µs | 12.2 µs | 136 | 16 |
| Node.js | 116 µs | 112 µs | 4.1 µs | 162 | 16 |
| Bun | 不可用: unavailable | ||||
Array Methodsn=1000001.77×更快
array-methods/array-methods?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 125 ms | 115 ms | 12.4 ms | 8 | 1 |
| 编译 | 1.24 ms | 1.07 ms | 132 µs | 242 | 1 |
| Node.js | 2.2 ms | 1.89 ms | 457 µs | 137 | 1 |
| Bun | 不可用: unavailable | ||||
Async Function Callsn=102×更快
async-promises/async-function-calls?n=10
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 25.6 µs | 12.2 µs | 16.3 µs | 733 | 16 |
| 编译 | 200 ns | 100 ns | 100 ns | 212 | 8192 |
| Node.js | 400 ns | 300 ns | 0 ns | 198 | 4096 |
| Bun | 不可用: unavailable | ||||
Async Function Callsn=10027×更快
async-promises/async-function-calls?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 123 µs | 105 µs | 17.3 µs | 153 | 16 |
| 编译 | 100 ns | 100 ns | 0 ns | 252 | 8192 |
| Node.js | 2.7 µs | 2.5 µs | 200 ns | 220 | 512 |
| Bun | 不可用: unavailable | ||||
Async Function Callsn=100049.6×更快
async-promises/async-function-calls?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.32 ms | 1.01 ms | 1.26 ms | 228 | 1 |
| 编译 | 500 ns | 500 ns | 100 ns | 284 | 2048 |
| Node.js | 24.8 µs | 21.5 µs | 2.6 µs | 190 | 64 |
| Bun | 不可用: unavailable | ||||
Async Resolved Awaitn=100.67×较慢
async-promises/async-resolved-await?n=10
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 74.6 µs | 45.5 µs | 254 µs | 4021 | 1 |
| 编译 | 600 ns | 300 ns | 14 µs | 100000 | 1 |
| Node.js | 400 ns | 300 ns | 100 ns | 178 | 4096 |
| Bun | 不可用: unavailable | ||||
Async Resolved Awaitn=10028×更快
async-promises/async-resolved-await?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 268 µs | 111 µs | 321 µs | 72 | 16 |
| 编译 | 100 ns | 100 ns | 0 ns | 264 | 8192 |
| Node.js | 2.8 µs | 2.5 µs | 300 ns | 211 | 512 |
| Bun | 不可用: unavailable | ||||
Async Resolved Awaitn=100051.8×更快
async-promises/async-resolved-await?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 2.41 ms | 1.06 ms | 3.78 ms | 126 | 1 |
| 编译 | 500 ns | 500 ns | 100 ns | 283 | 2048 |
| Node.js | 25.9 µs | 22.7 µs | 2.9 µs | 181 | 64 |
| Bun | 不可用: unavailable | ||||
Promise Alln=100.45×较慢
async-promises/promise-all?n=10
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 70.7 µs | 33.1 µs | 454 µs | 4287 | 1 |
| 编译 | 1.1 µs | 700 ns | 15 µs | 100000 | 1 |
| Node.js | 500 ns | 400 ns | 0 ns | 158 | 4096 |
| Bun | 不可用: unavailable | ||||
Promise Alln=1002.67×更快
async-promises/promise-all?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 492 µs | 255 µs | 817 µs | 309 | 2 |
| 编译 | 1.2 µs | 800 ns | 500 ns | 237 | 1024 |
| Node.js | 3.2 µs | 2.8 µs | 400 ns | 182 | 512 |
| Bun | 不可用: unavailable | ||||
Promise Alln=10005.39×更快
async-promises/promise-all?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 4.68 ms | 2.47 ms | 3.61 ms | 66 | 1 |
| 编译 | 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 | ||||
Promise Then Chainn=100.17×较慢
async-promises/promise-then-chain?n=10
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 25.9 µs | 15.2 µs | 80.9 µs | 11575 | 1 |
| 编译 | 1.8 µs | 1 µs | 24.2 µs | 100000 | 1 |
| Node.js | 300 ns | 300 ns | 0 ns | 221 | 4096 |
| Bun | 不可用: unavailable | ||||
Promise Then Chainn=1000.81×较慢
async-promises/promise-then-chain?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 197 µs | 135 µs | 101 µs | 191 | 8 |
| 编译 | 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 | ||||
Promise Then Chainn=10001.07×更快
async-promises/promise-then-chain?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.74 ms | 1.28 ms | 609 µs | 172 | 1 |
| 编译 | 23.4 µs | 18 µs | 4.8 µs | 201 | 64 |
| Node.js | 25 µs | 21.2 µs | 3.2 µs | 376 | 32 |
| Bun | 不可用: unavailable | ||||
Binary Treesn=121.33×更快
binary-trees/binary-trees?n=12
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 34.5 ms | 16.2 ms | 13 ms | 9 | 1 |
| 编译 | 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 | ||||
Binary Treesn=160.97×接近持平
binary-trees/binary-trees?n=16
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 302 ms | 262 ms | 25.5 ms | 7 | 1 |
| 编译 | 1.44 ms | 787 µs | 1.08 ms | 209 | 1 |
| Node.js | 1.4 ms | 1.11 ms | 459 µs | 215 | 1 |
| Bun | 不可用: unavailable | ||||
Binary Treesn=80.88×较慢
binary-trees/binary-trees?n=8
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 4.13 ms | 2.94 ms | 1.59 ms | 73 | 1 |
| 编译 | 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 | ||||
Brainfuckn=500.75×较慢
brainfuck/brainfuck?n=50
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 110 ms | 54.4 ms | 94.9 ms | 8 | 1 |
| 编译 | 227 µs | 205 µs | 97.5 µs | 1320 | 1 |
| Node.js | 170 µs | 132 µs | 69.2 µs | 1761 | 1 |
| Bun | 不可用: unavailable | ||||
Brainfuckn=5000.85×较慢
brainfuck/brainfuck?n=500
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 538 ms | 522 ms | 15.6 ms | 4 | 1 |
| 编译 | 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 | ||||
Brainfuckn=50000.83×较慢
brainfuck/brainfuck?n=5000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 5.73 s | 5.73 s | 0 ns | 1 | 1 |
| 编译 | 21.4 ms | 20.9 ms | 487 µs | 15 | 1 |
| Node.js | 17.8 ms | 17.1 ms | 446 µs | 17 | 1 |
| Bun | 不可用: unavailable | ||||
Class Constructionn=10000.37×较慢
classes/class-construction?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.84 ms | 1.19 ms | 1.04 ms | 164 | 1 |
| 编译 | 800 ns | 500 ns | 800 ns | 771 | 512 |
| Node.js | 300 ns | 300 ns | 0 ns | 257 | 4096 |
| Bun | 不可用: unavailable | ||||
Class Constructionn=100001.18×更快
classes/class-construction?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 23 ms | 18.4 ms | 3.21 ms | 14 | 1 |
| 编译 | 4.5 µs | 4.2 µs | 500 ns | 526 | 128 |
| Node.js | 5.3 µs | 5 µs | 200 ns | 222 | 256 |
| Bun | 不可用: unavailable | ||||
Class Constructionn=1000007.64×更快
classes/class-construction?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 418 ms | 327 ms | 66.2 ms | 6 | 1 |
| 编译 | 42.7 µs | 39.7 µs | 3.4 µs | 220 | 32 |
| Node.js | 326 µs | 294 µs | 26.1 µs | 230 | 4 |
| Bun | 不可用: unavailable | ||||
Class Field Reusen=10000.16×较慢
classes/class-field-reuse?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 2.95 ms | 2.43 ms | 1.12 ms | 102 | 1 |
| 编译 | 2.5 µs | 500 ns | 10.8 µs | 100000 | 1 |
| Node.js | 400 ns | 300 ns | 100 ns | 200 | 4096 |
| Bun | 不可用: unavailable | ||||
Class Field Reusen=100001.23×更快
classes/class-field-reuse?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 7.04 ms | 5.54 ms | 851 µs | 43 | 1 |
| 编译 | 5.2 µs | 4.9 µs | 400 ns | 227 | 256 |
| Node.js | 6.4 µs | 6 µs | 300 ns | 185 | 256 |
| Bun | 不可用: unavailable | ||||
Class Field Reusen=1000001.64×更快
classes/class-field-reuse?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 70 ms | 68.1 ms | 2.9 ms | 8 | 1 |
| 编译 | 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 | ||||
Class Method Inheritance Basen=10000.44×较慢
classes/class-method-inheritance-base?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 909 µs | 818 µs | 53.1 µs | 166 | 2 |
| 编译 | 900 ns | 500 ns | 2 µs | 2747 | 128 |
| Node.js | 400 ns | 300 ns | 0 ns | 201 | 4096 |
| Bun | 不可用: unavailable | ||||
Class Method Inheritance Basen=100001.31×更快
classes/class-method-inheritance-base?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 9.68 ms | 8.19 ms | 780 µs | 32 | 1 |
| 编译 | 4.9 µs | 4.6 µs | 200 ns | 240 | 256 |
| Node.js | 6.4 µs | 6 µs | 400 ns | 183 | 256 |
| Bun | 不可用: unavailable | ||||
Class Method Inheritance Basen=1000001.74×更快
classes/class-method-inheritance-base?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 103 ms | 96.7 ms | 4.73 ms | 8 | 1 |
| 编译 | 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 | ||||
Class Method Inheritedn=10000.91×较慢
classes/class-method-inherited?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 847 µs | 745 µs | 67.2 µs | 355 | 1 |
| 编译 | 1.1 µs | 500 ns | 2.2 µs | 2151 | 128 |
| Node.js | 1 µs | 1 µs | 0 ns | 147 | 2048 |
| Bun | 不可用: unavailable | ||||
Class Method Inheritedn=100002.08×更快
classes/class-method-inherited?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 9.77 ms | 8.32 ms | 659 µs | 31 | 1 |
| 编译 | 5.1 µs | 4.9 µs | 300 ns | 232 | 256 |
| Node.js | 10.6 µs | 10 µs | 500 ns | 222 | 128 |
| Bun | 不可用: unavailable | ||||
Class Method Inheritedn=1000001.63×更快
classes/class-method-inherited?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 108 ms | 105 ms | 1.45 ms | 8 | 1 |
| 编译 | 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 | ||||
Class Method Overriden=10000.36×较慢
classes/class-method-override?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 921 µs | 809 µs | 72.5 µs | 163 | 2 |
| 编译 | 2.8 µs | 600 ns | 12.1 µs | 100000 | 1 |
| Node.js | 1 µs | 1 µs | 0 ns | 147 | 2048 |
| Bun | 不可用: unavailable | ||||
Class Method Overriden=100002.12×更快
classes/class-method-override?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 9.95 ms | 7.66 ms | 892 µs | 31 | 1 |
| 编译 | 4.9 µs | 4.8 µs | 200 ns | 238 | 256 |
| Node.js | 10.4 µs | 10 µs | 300 ns | 225 | 128 |
| Bun | 不可用: unavailable | ||||
Class Method Overriden=1000001.71×更快
classes/class-method-override?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 113 ms | 107 ms | 5.99 ms | 8 | 1 |
| 编译 | 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 | ||||
Class Method Reusen=10000.5×较慢
classes/class-method-reuse?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 2.3 ms | 919 µs | 1.72 ms | 131 | 1 |
| 编译 | 800 ns | 500 ns | 1.6 µs | 3074 | 128 |
| Node.js | 400 ns | 300 ns | 0 ns | 199 | 4096 |
| Bun | 不可用: unavailable | ||||
Class Method Reusen=100001.29×更快
classes/class-method-reuse?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 9.64 ms | 8.07 ms | 745 µs | 32 | 1 |
| 编译 | 5.1 µs | 4.9 µs | 500 ns | 229 | 256 |
| Node.js | 6.6 µs | 6.1 µs | 900 ns | 178 | 256 |
| Bun | 不可用: unavailable | ||||
Class Method Reusen=1000001.64×更快
classes/class-method-reuse?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 101 ms | 94.5 ms | 3.55 ms | 8 | 1 |
| 编译 | 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 | ||||
Class Method Supern=10001×接近持平
classes/class-method-super?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.55 ms | 1.3 ms | 131 µs | 194 | 1 |
| 编译 | 1 µs | 500 ns | 2.2 µs | 2372 | 128 |
| Node.js | 1 µs | 1 µs | 100 ns | 295 | 1024 |
| Bun | 不可用: unavailable | ||||
Class Method Supern=100002.02×更快
classes/class-method-super?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 16.9 ms | 16.3 ms | 402 µs | 18 | 1 |
| 编译 | 5.3 µs | 4.9 µs | 400 ns | 222 | 256 |
| Node.js | 10.7 µs | 10.2 µs | 700 ns | 219 | 128 |
| Bun | 不可用: unavailable | ||||
Class Method Supern=1000002.05×更快
classes/class-method-super?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 217 ms | 201 ms | 12.1 ms | 8 | 1 |
| 编译 | 55.6 µs | 50.3 µs | 4.6 µs | 338 | 16 |
| Node.js | 114 µs | 111 µs | 3.3 µs | 165 | 16 |
| Bun | 不可用: unavailable | ||||
Closuresn=10004.82×更快
closures/closures?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 4.24 ms | 1.43 ms | 2.26 ms | 71 | 1 |
| 编译 | 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 | ||||
Closuresn=100006.96×更快
closures/closures?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 11.7 ms | 7.31 ms | 3.04 ms | 26 | 1 |
| 编译 | 20.3 µs | 17.7 µs | 3.3 µs | 232 | 64 |
| Node.js | 141 µs | 117 µs | 22 µs | 266 | 8 |
| Bun | 不可用: unavailable | ||||
Closuresn=1000008.59×更快
closures/closures?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 65.8 ms | 61.8 ms | 3.95 ms | 8 | 1 |
| 编译 | 210 µs | 187 µs | 32.6 µs | 180 | 8 |
| Node.js | 1.8 ms | 1.28 ms | 360 µs | 167 | 1 |
| Bun | 不可用: unavailable | ||||
Count Primesn=10000.23×较慢
count-primes/count-primes?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 12.8 ms | 9.27 ms | 5.48 ms | 24 | 1 |
| 编译 | 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 | ||||
Count Primesn=100000.5×较慢
count-primes/count-primes?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 59.8 ms | 24.3 ms | 37.4 ms | 8 | 1 |
| 编译 | 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 | ||||
Count Primesn=1000000.95×接近持平
count-primes/count-primes?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 256 ms | 215 ms | 28.7 ms | 8 | 1 |
| 编译 | 935 µs | 760 µs | 193 µs | 161 | 2 |
| Node.js | 891 µs | 721 µs | 183 µs | 169 | 2 |
| Bun | 不可用: unavailable | ||||
Date Numericn=1000.32×较慢
date-numeric/date-numeric?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 378 µs | 287 µs | 323 µs | 795 | 1 |
| 编译 | 2.2 µs | 1.8 µs | 9.1 µs | 100000 | 1 |
| Node.js | 700 ns | 600 ns | 100 ns | 200 | 2048 |
| Bun | 不可用: unavailable | ||||
Date Numericn=100001.32×更快
date-numeric/date-numeric?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 12.6 ms | 5.59 ms | 12.5 ms | 24 | 1 |
| 编译 | 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 | ||||
Date Numericn=1000001.42×更快
date-numeric/date-numeric?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 54.3 ms | 53.6 ms | 660 µs | 8 | 1 |
| 编译 | 465 µs | 433 µs | 21.2 µs | 162 | 4 |
| Node.js | 659 µs | 549 µs | 132 µs | 456 | 1 |
| Bun | 不可用: unavailable | ||||
Throw Branch Controln=1000000.45×较慢
exceptions/throw-branch-control?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 96.9 ms | 43.9 ms | 93.7 ms | 8 | 1 |
| 编译 | 412 µs | 292 µs | 586 µs | 729 | 1 |
| Node.js | 186 µs | 116 µs | 381 µs | 1613 | 1 |
| Bun | 不可用: unavailable | ||||
Throw Errorn=1000000.37×较慢
exceptions/throw-error?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 101 ms | 64.1 ms | 23.5 ms | 8 | 1 |
| 编译 | 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 | ||||
Throw Primitiven=1000000.73×较慢
exceptions/throw-primitive?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 120 ms | 69.7 ms | 24.3 ms | 8 | 1 |
| 编译 | 415 µs | 270 µs | 242 µs | 724 | 1 |
| Node.js | 302 µs | 170 µs | 824 µs | 254 | 4 |
| Bun | 不可用: unavailable | ||||
Throw Try Catch No Thrown=1000000.43×较慢
exceptions/throw-try-catch-no-throw?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 81.2 ms | 53.3 ms | 26.3 ms | 8 | 1 |
| 编译 | 414 µs | 295 µs | 588 µs | 725 | 1 |
| Node.js | 178 µs | 117 µs | 67.5 µs | 211 | 8 |
| Bun | 不可用: unavailable | ||||
Factorialn=1000.09×较慢
factorial/factorial?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 167 µs | 49 µs | 281 µs | 1796 | 1 |
| 编译 | 1.1 µs | 800 ns | 6.5 µs | 100000 | 1 |
| Node.js | 100 ns | 100 ns | 0 ns | 306 | 16384 |
| Bun | 不可用: unavailable | ||||
Factorialn=10000.56×较慢
factorial/factorial?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 424 µs | 337 µs | 69.3 µs | 177 | 4 |
| 编译 | 1.6 µs | 1 µs | 1.3 µs | 749 | 256 |
| Node.js | 900 ns | 900 ns | 0 ns | 315 | 1024 |
| Bun | 不可用: unavailable | ||||
Factorialn=100000.94×较慢
factorial/factorial?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 3.44 ms | 3.01 ms | 250 µs | 88 | 1 |
| 编译 | 9.7 µs | 9.3 µs | 400 ns | 243 | 128 |
| Node.js | 9.1 µs | 8.5 µs | 400 ns | 257 | 128 |
| Bun | 不可用: unavailable | ||||
Fibonaccin=100.71×较慢
fibonacci/fibonacci?n=10
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 496 µs | 383 µs | 463 µs | 605 | 1 |
| 编译 | 1.4 µs | 800 ns | 17.9 µs | 100000 | 1 |
| Node.js | 1 µs | 600 ns | 400 ns | 294 | 1024 |
| Bun | 不可用: unavailable | ||||
Fibonaccin=202.37×更快
fibonacci/fibonacci?n=20
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 38.2 ms | 10.2 ms | 23.6 ms | 8 | 1 |
| 编译 | 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 | ||||
Fibonaccin=300.8×较慢
fibonacci/fibonacci?n=30
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.18 s | 1.15 s | 39.1 ms | 2 | 1 |
| 编译 | 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 | ||||
Fibonaccin=352.25×更快
fibonacci/fibonacci?n=35
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 13.4 s | 13.4 s | 0 ns | 1 | 1 |
| 编译 | 64.5 ms | 51.3 ms | 7.67 ms | 8 | 1 |
| Node.js | 145 ms | 140 ms | 3.29 ms | 8 | 1 |
| Bun | 不可用: unavailable | ||||
Accumulaten=10001.13×更快
int-arrays/accumulate?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 3.9 ms | 2.82 ms | 464 µs | 77 | 1 |
| 编译 | 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 | ||||
Accumulaten=1000000.96×接近持平
int-arrays/accumulate?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 264 ms | 244 ms | 17.8 ms | 8 | 1 |
| 编译 | 496 µs | 459 µs | 41.6 µs | 152 | 4 |
| Node.js | 476 µs | 388 µs | 246 µs | 158 | 4 |
| Bun | 不可用: unavailable | ||||
Accumulaten=10000000.94×较慢
int-arrays/accumulate?n=1000000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 2.63 s | 2.63 s | 0 ns | 1 | 1 |
| 编译 | 3.96 ms | 3.38 ms | 418 µs | 76 | 1 |
| Node.js | 3.74 ms | 3.35 ms | 371 µs | 81 | 1 |
| Bun | 不可用: unavailable | ||||
Int32 Kerneln=10000.7×较慢
int-arrays/int32-kernel?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 5.58 ms | 2.01 ms | 3.44 ms | 54 | 1 |
| 编译 | 4 µs | 2 µs | 10.1 µs | 75452 | 1 |
| Node.js | 2.8 µs | 2.3 µs | 300 ns | 206 | 512 |
| Bun | 不可用: unavailable | ||||
Int32 Kerneln=1000000.95×接近持平
int-arrays/int32-kernel?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 133 ms | 116 ms | 22.3 ms | 8 | 1 |
| 编译 | 292 µs | 268 µs | 38.1 µs | 129 | 8 |
| Node.js | 278 µs | 228 µs | 132 µs | 135 | 8 |
| Bun | 不可用: unavailable | ||||
Int32 Kerneln=10000000.79×较慢
int-arrays/int32-kernel?n=1000000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.2 s | 1.16 s | 48.5 ms | 2 | 1 |
| 编译 | 2.76 ms | 2.59 ms | 166 µs | 109 | 1 |
| Node.js | 2.19 ms | 1.98 ms | 239 µs | 138 | 1 |
| Bun | 不可用: unavailable | ||||
Jsonn=1001.3×更快
json/json?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.08 ms | 726 µs | 1.56 ms | 279 | 1 |
| 编译 | 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 | ||||
Jsonn=10002.2×更快
json/json?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 12.7 ms | 11.4 ms | 1.63 ms | 24 | 1 |
| 编译 | 93.5 µs | 76.5 µs | 12.1 µs | 201 | 16 |
| Node.js | 205 µs | 176 µs | 29.4 µs | 183 | 8 |
| Bun | 不可用: unavailable | ||||
Jsonn=100000.62×较慢
json/json?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 57 ms | 27.1 ms | 22.6 ms | 8 | 1 |
| 编译 | 3.91 ms | 867 µs | 4.94 ms | 77 | 1 |
| Node.js | 2.44 ms | 2.03 ms | 355 µs | 123 | 1 |
| Bun | 不可用: unavailable | ||||
Flattened Rest Controln=10000.19×较慢
language-hot-paths/flattened-rest-control?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 356 µs | 301 µs | 36.1 µs | 211 | 4 |
| 编译 | 2.1 µs | 1.5 µs | 1.2 µs | 556 | 256 |
| Node.js | 400 ns | 400 ns | 0 ns | 174 | 4096 |
| Bun | 不可用: unavailable | ||||
Flattened Rest Controln=100000.4×较慢
language-hot-paths/flattened-rest-control?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 3.66 ms | 3.36 ms | 224 µs | 82 | 1 |
| 编译 | 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 | ||||
Flattened Rest Controln=1000001.17×更快
language-hot-paths/flattened-rest-control?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 34 ms | 33.2 ms | 568 µs | 9 | 1 |
| 编译 | 164 µs | 155 µs | 6.5 µs | 229 | 8 |
| Node.js | 192 µs | 181 µs | 9 µs | 196 | 8 |
| Bun | 不可用: unavailable | ||||
Format Fixedn=10000.6×较慢
language-hot-paths/format-fixed?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 881 µs | 706 µs | 165 µs | 341 | 1 |
| 编译 | 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 | ||||
Format Fixedn=100002.27×更快
language-hot-paths/format-fixed?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 7.95 ms | 7.46 ms | 287 µs | 38 | 1 |
| 编译 | 461 µs | 423 µs | 42.2 µs | 326 | 2 |
| Node.js | 1.05 ms | 928 µs | 158 µs | 287 | 1 |
| Bun | 不可用: unavailable | ||||
Format Fixedn=1000001.79×更快
language-hot-paths/format-fixed?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 79.9 ms | 77.7 ms | 1.79 ms | 8 | 1 |
| 编译 | 4.75 ms | 4.46 ms | 291 µs | 64 | 1 |
| Node.js | 8.5 ms | 7.84 ms | 299 µs | 36 | 1 |
| Bun | 不可用: unavailable | ||||
Generator Rangen=10002.56×更快
language-hot-paths/generator-range?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.77 ms | 1.22 ms | 1.18 ms | 170 | 1 |
| 编译 | 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 | ||||
Generator Rangen=1000010.6×更快
language-hot-paths/generator-range?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 13.9 ms | 12.5 ms | 1.05 ms | 22 | 1 |
| 编译 | 20 µs | 19.1 µs | 1.5 µs | 235 | 64 |
| Node.js | 213 µs | 149 µs | 60.5 µs | 177 | 8 |
| Bun | 不可用: unavailable | ||||
Generator Rangen=1000004.9×更快
language-hot-paths/generator-range?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 132 ms | 121 ms | 5.9 ms | 8 | 1 |
| 编译 | 239 µs | 200 µs | 28.1 µs | 157 | 8 |
| Node.js | 1.17 ms | 1 ms | 88.5 µs | 257 | 1 |
| Bun | 不可用: unavailable | ||||
Numeric Assignment Controln=10000.5×较慢
language-hot-paths/numeric-assignment-control?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 296 µs | 255 µs | 46.7 µs | 254 | 4 |
| 编译 | 600 ns | 400 ns | 600 ns | 1037 | 512 |
| Node.js | 300 ns | 300 ns | 0 ns | 253 | 4096 |
| Bun | 不可用: unavailable | ||||
Numeric Assignment Controln=100000.93×较慢
language-hot-paths/numeric-assignment-control?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 2.74 ms | 2.45 ms | 204 µs | 110 | 1 |
| 编译 | 4.2 µs | 4 µs | 300 ns | 283 | 256 |
| Node.js | 3.9 µs | 3.7 µs | 300 ns | 149 | 512 |
| Bun | 不可用: unavailable | ||||
Numeric Assignment Controln=1000001.91×更快
language-hot-paths/numeric-assignment-control?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 26.9 ms | 26.1 ms | 606 µs | 12 | 1 |
| 编译 | 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 | ||||
Numeric Compoundn=10000.15×较慢
language-hot-paths/numeric-compound?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.2 ms | 362 µs | 1.28 ms | 250 | 1 |
| 编译 | 2 µs | 400 ns | 5.4 µs | 100000 | 1 |
| Node.js | 300 ns | 300 ns | 0 ns | 254 | 4096 |
| Bun | 不可用: unavailable | ||||
Numeric Compoundn=100000.88×较慢
language-hot-paths/numeric-compound?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 3.66 ms | 3.26 ms | 216 µs | 82 | 1 |
| 编译 | 4.2 µs | 4 µs | 300 ns | 281 | 256 |
| Node.js | 3.7 µs | 3.6 µs | 200 ns | 157 | 512 |
| Bun | 不可用: unavailable | ||||
Numeric Compoundn=1000002.19×更快
language-hot-paths/numeric-compound?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 37 ms | 35.5 ms | 1.46 ms | 9 | 1 |
| 编译 | 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 | ||||
Parse Integersn=10007.67×更快
language-hot-paths/parse-integers?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 838 µs | 608 µs | 316 µs | 359 | 1 |
| 编译 | 600 ns | 400 ns | 700 ns | 927 | 512 |
| Node.js | 4.6 µs | 4.4 µs | 400 ns | 255 | 256 |
| Bun | 不可用: unavailable | ||||
Parse Integersn=1000020×更快
language-hot-paths/parse-integers?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 6.67 ms | 6.09 ms | 394 µs | 46 | 1 |
| 编译 | 4.2 µs | 4 µs | 200 ns | 282 | 256 |
| Node.js | 84 µs | 73.6 µs | 18.2 µs | 224 | 16 |
| Bun | 不可用: unavailable | ||||
Parse Integersn=10000035.7×更快
language-hot-paths/parse-integers?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 68.5 ms | 64.2 ms | 2.41 ms | 8 | 1 |
| 编译 | 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 | ||||
Stable Numeric Restn=10000.3×较慢
language-hot-paths/stable-numeric-rest?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 947 µs | 825 µs | 96.8 µs | 317 | 1 |
| 编译 | 1 µs | 600 ns | 1.1 µs | 597 | 512 |
| Node.js | 300 ns | 300 ns | 200 ns | 7420 | 128 |
| Bun | 不可用: unavailable | ||||
Stable Numeric Restn=100001.14×更快
language-hot-paths/stable-numeric-rest?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 9.43 ms | 8.68 ms | 515 µs | 32 | 1 |
| 编译 | 5.8 µs | 5.5 µs | 400 ns | 204 | 256 |
| Node.js | 6.6 µs | 6.3 µs | 500 ns | 179 | 256 |
| Bun | 不可用: unavailable | ||||
Stable Numeric Restn=1000007.21×更快
language-hot-paths/stable-numeric-rest?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 95.3 ms | 93.2 ms | 1.71 ms | 8 | 1 |
| 编译 | 59.7 µs | 55 µs | 3.8 µs | 158 | 32 |
| Node.js | 430 µs | 72.4 µs | 432 µs | 699 | 1 |
| Bun | 不可用: unavailable | ||||
Map Iterationn=1000.66×较慢
map-set/map-iteration?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 188 µs | 95.8 µs | 65.1 µs | 1596 | 1 |
| 编译 | 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 | ||||
Map Iterationn=10000.64×较慢
map-set/map-iteration?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.03 ms | 906 µs | 114 µs | 146 | 2 |
| 编译 | 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 | ||||
Map Iterationn=100000.84×较慢
map-set/map-iteration?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 14.5 ms | 10.7 ms | 4.44 ms | 21 | 1 |
| 编译 | 513 µs | 273 µs | 228 µs | 293 | 2 |
| Node.js | 432 µs | 367 µs | 140 µs | 348 | 2 |
| Bun | 不可用: unavailable | ||||
Map Operationsn=1000.49×较慢
map-set/map-operations?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 997 µs | 488 µs | 779 µs | 301 | 1 |
| 编译 | 4.7 µs | 1.6 µs | 13.7 µs | 64369 | 1 |
| Node.js | 2.3 µs | 2 µs | 100 ns | 254 | 512 |
| Bun | 不可用: unavailable | ||||
Map Operationsn=10001.07×更快
map-set/map-operations?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.92 ms | 1.58 ms | 233 µs | 157 | 1 |
| 编译 | 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 | ||||
Map Operationsn=100001.52×更快
map-set/map-operations?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 23.3 ms | 21.6 ms | 1.3 ms | 13 | 1 |
| 编译 | 358 µs | 206 µs | 113 µs | 105 | 8 |
| Node.js | 543 µs | 452 µs | 269 µs | 553 | 1 |
| Bun | 不可用: unavailable | ||||
Set Iterationn=1000.5×较慢
map-set/set-iteration?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 73.3 µs | 62.2 µs | 10.6 µs | 256 | 16 |
| 编译 | 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 | ||||
Set Iterationn=10000.45×较慢
map-set/set-iteration?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 786 µs | 688 µs | 102 µs | 191 | 2 |
| 编译 | 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 | ||||
Set Iterationn=100000.81×较慢
map-set/set-iteration?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 9.78 ms | 6.73 ms | 2.91 ms | 31 | 1 |
| 编译 | 444 µs | 243 µs | 349 µs | 678 | 1 |
| Node.js | 362 µs | 295 µs | 161 µs | 208 | 4 |
| Bun | 不可用: unavailable | ||||
Set Operationsn=1000.4×较慢
map-set/set-operations?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 152 µs | 126 µs | 43.1 µs | 1981 | 1 |
| 编译 | 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 | ||||
Set Operationsn=10000.65×较慢
map-set/set-operations?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.63 ms | 1.41 ms | 192 µs | 184 | 1 |
| 编译 | 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 | ||||
Set Operationsn=100000.95×较慢
map-set/set-operations?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 16.1 ms | 14.6 ms | 1.02 ms | 19 | 1 |
| 编译 | 529 µs | 284 µs | 224 µs | 142 | 4 |
| Node.js | 501 µs | 426 µs | 194 µs | 300 | 2 |
| Bun | 不可用: unavailable | ||||
Num Pushn=10000.62×较慢
num-arrays/num-push?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.47 ms | 816 µs | 349 µs | 205 | 1 |
| 编译 | 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 | ||||
Num Pushn=1000000.93×较慢
num-arrays/num-push?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 114 ms | 98.2 ms | 14.5 ms | 8 | 1 |
| 编译 | 777 µs | 682 µs | 201 µs | 194 | 2 |
| Node.js | 719 µs | 553 µs | 524 µs | 421 | 1 |
| Bun | 不可用: unavailable | ||||
Num Pushn=10000001.6×更快
num-arrays/num-push?n=1000000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.03 s | 1.01 s | 20.7 ms | 2 | 1 |
| 编译 | 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 | ||||
Num Writen=10000.08×较慢
num-arrays/num-write?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 4.36 ms | 3.24 ms | 2.48 ms | 69 | 1 |
| 编译 | 32.6 µs | 25 µs | 38 µs | 9213 | 1 |
| Node.js | 2.7 µs | 2.5 µs | 300 ns | 214 | 512 |
| Bun | 不可用: unavailable | ||||
Num Writen=1000000.95×较慢
num-arrays/num-write?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 110 ms | 82.9 ms | 57.4 ms | 8 | 1 |
| 编译 | 801 µs | 716 µs | 93.6 µs | 188 | 2 |
| Node.js | 758 µs | 575 µs | 209 µs | 198 | 2 |
| Bun | 不可用: unavailable | ||||
Num Writen=10000001.5×更快
num-arrays/num-write?n=1000000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 922 ms | 877 ms | 39.6 ms | 3 | 1 |
| 编译 | 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 | ||||
Objectsn=10000.5×较慢
objects/objects?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 2.03 ms | 528 µs | 1.66 ms | 148 | 1 |
| 编译 | 2.4 µs | 800 ns | 6 µs | 100000 | 1 |
| Node.js | 1.2 µs | 700 ns | 1 µs | 126 | 2048 |
| Bun | 不可用: unavailable | ||||
Objectsn=100002.72×更快
objects/objects?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 5.67 ms | 5.15 ms | 339 µs | 53 | 1 |
| 编译 | 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 | ||||
Objectsn=1000004.63×更快
objects/objects?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 56 ms | 54.6 ms | 1.36 ms | 8 | 1 |
| 编译 | 87.4 µs | 78.2 µs | 7.2 µs | 215 | 16 |
| Node.js | 405 µs | 143 µs | 292 µs | 742 | 1 |
| Bun | 不可用: unavailable | ||||
Regex Validatorn=1000.35×较慢
regex-validator/regex-validator?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 4.26 ms | 1.66 ms | 6.86 ms | 71 | 1 |
| 编译 | 17.3 µs | 5.4 µs | 205 µs | 17305 | 1 |
| Node.js | 6 µs | 3.1 µs | 1.2 µs | 195 | 256 |
| Bun | 不可用: unavailable | ||||
Regex Validatorn=100000.76×较慢
regex-validator/regex-validator?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 191 ms | 62.3 ms | 136 ms | 8 | 1 |
| 编译 | 799 µs | 559 µs | 171 µs | 188 | 2 |
| Node.js | 605 µs | 268 µs | 122 µs | 496 | 1 |
| Bun | 不可用: unavailable | ||||
Regex Validatorn=1000000.75×较慢
regex-validator/regex-validator?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 850 ms | 719 ms | 119 ms | 3 | 1 |
| 编译 | 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 | ||||
Regexn=1000.15×较慢
regex/regex?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 371 µs | 109 µs | 942 µs | 809 | 1 |
| 编译 | 227 µs | 96.9 µs | 790 µs | 1320 | 1 |
| Node.js | 34.6 µs | 27.1 µs | 7 µs | 136 | 64 |
| Bun | 不可用: unavailable | ||||
Regexn=10000.47×较慢
regex/regex?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 464 µs | 377 µs | 121 µs | 324 | 2 |
| 编译 | 804 µs | 545 µs | 307 µs | 187 | 2 |
| Node.js | 380 µs | 265 µs | 136 µs | 395 | 2 |
| Bun | 不可用: unavailable | ||||
Regexn=100000.74×较慢
regex/regex?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 3.9 ms | 3.3 ms | 1.15 ms | 78 | 1 |
| 编译 | 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 | ||||
Sortn=1000.11×较慢
sort/sort?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 521 µs | 437 µs | 438 µs | 576 | 1 |
| 编译 | 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 | ||||
Sortn=10000.87×较慢
sort/sort?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 10.5 ms | 9.38 ms | 2.14 ms | 29 | 1 |
| 编译 | 266 µs | 165 µs | 192 µs | 565 | 2 |
| Node.js | 230 µs | 206 µs | 13.8 µs | 164 | 8 |
| Bun | 不可用: unavailable | ||||
Sortn=100001.06×更快
sort/sort?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 35.3 ms | 26 ms | 10.2 ms | 9 | 1 |
| 编译 | 2.77 ms | 2.37 ms | 616 µs | 109 | 1 |
| Node.js | 2.94 ms | 2.69 ms | 189 µs | 103 | 1 |
| Bun | 不可用: unavailable | ||||
Stringsn=1000.37×较慢
strings/strings?n=100
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 918 µs | 678 µs | 723 µs | 327 | 1 |
| 编译 | 2.7 µs | 2 µs | 5.8 µs | 100000 | 1 |
| Node.js | 1 µs | 900 ns | 100 ns | 289 | 1024 |
| Bun | 不可用: unavailable | ||||
Stringsn=10000.93×较慢
strings/strings?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 5.18 ms | 1.86 ms | 2.38 ms | 58 | 1 |
| 编译 | 9.6 µs | 7.7 µs | 2.2 µs | 246 | 128 |
| Node.js | 8.9 µs | 8 µs | 800 ns | 264 | 128 |
| Bun | 不可用: unavailable | ||||
Stringsn=100001.19×更快
strings/strings?n=10000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 26 ms | 23.7 ms | 2.02 ms | 12 | 1 |
| 编译 | 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 | ||||
Typed Arraysn=10001.03×接近持平
typed-arrays/typed-arrays?n=1000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 6.77 ms | 5.14 ms | 2.33 ms | 45 | 1 |
| 编译 | 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 | ||||
Typed Arraysn=1000001.19×更快
typed-arrays/typed-arrays?n=100000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 175 ms | 123 ms | 63 ms | 8 | 1 |
| 编译 | 330 µs | 248 µs | 72.4 µs | 456 | 2 |
| Node.js | 392 µs | 330 µs | 219 µs | 192 | 4 |
| Bun | 不可用: unavailable | ||||
Typed Arraysn=10000001.25×更快
typed-arrays/typed-arrays?n=1000000
原始测量
| 平均值 | 最小值 | 标准差 | 样本数 | 内部迭代 | |
|---|---|---|---|---|---|
| 解释器 | 1.2 s | 1.16 s | 58.2 ms | 2 | 1 |
| 编译 | 2.24 ms | 1.93 ms | 304 µs | 134 | 1 |
| Node.js | 2.79 ms | 2.57 ms | 285 µs | 108 | 1 |
| Bun | 不可用: unavailable | ||||
没有符合筛选条件的基准。
显示 128 个基准用例。
工程上限
编译器提升空间
在同一次 BenchmarkDotNet 测试中,将 SharpTS 编译的 TypeScript 与等价动态 C# 和惯用 C# 比较。
此 SharpTS 版本尚未签入审核后的 compiler-micro 快照。面板已准备好接收下一次发布的 schema-v2 测试。
发布约束
桌面性能预算
GUI 延迟、内存分配、启动、内存和发布大小数据与 Node 比较保持分离。
尚未签入审核后的 GUI 快照。缺失数据绝不会显示为零或预算通过。
理解数据
测试方法与来源
绝对测量值只在同一个绑定机器的测试内比较。绝不会合并不同测试套件或环境。
- 环境
- Microsoft Windows 10.0.29639 · x64 · Intel64 Family 6 Model 183 Stepping 1, GenuineIntel
- 工具链
- .NET 10.0.400 · interpreter 0b93b1119bd1e27cbd07e83211fa31568e6ac596 · compiled 0b93b1119bd1e27cbd07e83211fa31568e6ac596 · node v24.19.0
- 计时范围
- inProcessWorkload · performance.now
- 包含
- one workload function invocation
- 不包含
- process startup; script loading; SharpTS compilation; warmup; batch calibration