实测性能

以 .NET 速度运行 TypeScript

来自固定 SharpTS 版本的可复现基准数据,首先回答最重要的目标:达到或超过 Node.js。

相对 Node 的几何平均值1.12×128 个可比较用例
快于 Node57128 个可比较用例
与 Node 相差 5% 以内6128 个可比较用例
仍然落后65128 个可比较用例

主要基准

SharpTS 与 Node.js

每一行都在同一环境中比较相同的 TypeScript 工作负载。图表采用对数刻度,避免极端结果掩盖常规差异。

Array Methodsn=1000

array-methods/array-methods?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器5.48 ms3.97 ms2.88 ms551
编译15.8 µs8.6 µs20.2 µs190131
Node.js13 µs11.2 µs1.5 µs180128
Bun不可用: unavailable
Array Methodsn=10000

array-methods/array-methods?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器38.3 ms13.1 ms20.1 ms81
编译138 µs116 µs12.2 µs13616
Node.js116 µs112 µs4.1 µs16216
Bun不可用: unavailable
Array Methodsn=100000

array-methods/array-methods?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器125 ms115 ms12.4 ms81
编译1.24 ms1.07 ms132 µs2421
Node.js2.2 ms1.89 ms457 µs1371
Bun不可用: unavailable
Async Function Callsn=10

async-promises/async-function-calls?n=10

原始测量

平均值最小值标准差样本数内部迭代
解释器25.6 µs12.2 µs16.3 µs73316
编译200 ns100 ns100 ns2128192
Node.js400 ns300 ns0 ns1984096
Bun不可用: unavailable
Async Function Callsn=100

async-promises/async-function-calls?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器123 µs105 µs17.3 µs15316
编译100 ns100 ns0 ns2528192
Node.js2.7 µs2.5 µs200 ns220512
Bun不可用: unavailable
Async Function Callsn=1000

async-promises/async-function-calls?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.32 ms1.01 ms1.26 ms2281
编译500 ns500 ns100 ns2842048
Node.js24.8 µs21.5 µs2.6 µs19064
Bun不可用: unavailable
Async Resolved Awaitn=10

async-promises/async-resolved-await?n=10

原始测量

平均值最小值标准差样本数内部迭代
解释器74.6 µs45.5 µs254 µs40211
编译600 ns300 ns14 µs1000001
Node.js400 ns300 ns100 ns1784096
Bun不可用: unavailable
Async Resolved Awaitn=100

async-promises/async-resolved-await?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器268 µs111 µs321 µs7216
编译100 ns100 ns0 ns2648192
Node.js2.8 µs2.5 µs300 ns211512
Bun不可用: unavailable
Async Resolved Awaitn=1000

async-promises/async-resolved-await?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器2.41 ms1.06 ms3.78 ms1261
编译500 ns500 ns100 ns2832048
Node.js25.9 µs22.7 µs2.9 µs18164
Bun不可用: unavailable
Promise Alln=10

async-promises/promise-all?n=10

原始测量

平均值最小值标准差样本数内部迭代
解释器70.7 µs33.1 µs454 µs42871
编译1.1 µs700 ns15 µs1000001
Node.js500 ns400 ns0 ns1584096
Bun不可用: unavailable
Promise Alln=100

async-promises/promise-all?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器492 µs255 µs817 µs3092
编译1.2 µs800 ns500 ns2371024
Node.js3.2 µs2.8 µs400 ns182512
Bun不可用: unavailable
Promise Alln=1000

async-promises/promise-all?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器4.68 ms2.47 ms3.61 ms661
编译5.6 µs4.4 µs1.1 µs212256
Node.js30.2 µs27.1 µs2 µs15664
Bun不可用: unavailable
Promise Then Chainn=10

async-promises/promise-then-chain?n=10

原始测量

平均值最小值标准差样本数内部迭代
解释器25.9 µs15.2 µs80.9 µs115751
编译1.8 µs1 µs24.2 µs1000001
Node.js300 ns300 ns0 ns2214096
Bun不可用: unavailable
Promise Then Chainn=100

async-promises/promise-then-chain?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器197 µs135 µs101 µs1918
编译3.1 µs2.2 µs1.9 µs746128
Node.js2.5 µs2.2 µs300 ns234512
Bun不可用: unavailable
Promise Then Chainn=1000

async-promises/promise-then-chain?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.74 ms1.28 ms609 µs1721
编译23.4 µs18 µs4.8 µs20164
Node.js25 µs21.2 µs3.2 µs37632
Bun不可用: unavailable
Binary Treesn=12

binary-trees/binary-trees?n=12

原始测量

平均值最小值标准差样本数内部迭代
解释器34.5 ms16.2 ms13 ms91
编译60.4 µs52.1 µs6.1 µs15632
Node.js80.5 µs70.1 µs8.2 µs23316
Bun不可用: unavailable
Binary Treesn=16

binary-trees/binary-trees?n=16

原始测量

平均值最小值标准差样本数内部迭代
解释器302 ms262 ms25.5 ms71
编译1.44 ms787 µs1.08 ms2091
Node.js1.4 ms1.11 ms459 µs2151
Bun不可用: unavailable
Binary Treesn=8

binary-trees/binary-trees?n=8

原始测量

平均值最小值标准差样本数内部迭代
解释器4.13 ms2.94 ms1.59 ms731
编译4.9 µs3.3 µs8.4 µs615331
Node.js4.3 µs3.9 µs300 ns274256
Bun不可用: unavailable
Brainfuckn=50

brainfuck/brainfuck?n=50

原始测量

平均值最小值标准差样本数内部迭代
解释器110 ms54.4 ms94.9 ms81
编译227 µs205 µs97.5 µs13201
Node.js170 µs132 µs69.2 µs17611
Bun不可用: unavailable
Brainfuckn=500

brainfuck/brainfuck?n=500

原始测量

平均值最小值标准差样本数内部迭代
解释器538 ms522 ms15.6 ms41
编译2.11 ms2.05 ms82.2 µs1431
Node.js1.79 ms1.64 ms131 µs1681
Bun不可用: unavailable
Brainfuckn=5000

brainfuck/brainfuck?n=5000

原始测量

平均值最小值标准差样本数内部迭代
解释器5.73 s5.73 s0 ns11
编译21.4 ms20.9 ms487 µs151
Node.js17.8 ms17.1 ms446 µs171
Bun不可用: unavailable
Class Constructionn=1000

classes/class-construction?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.84 ms1.19 ms1.04 ms1641
编译800 ns500 ns800 ns771512
Node.js300 ns300 ns0 ns2574096
Bun不可用: unavailable
Class Constructionn=10000

classes/class-construction?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器23 ms18.4 ms3.21 ms141
编译4.5 µs4.2 µs500 ns526128
Node.js5.3 µs5 µs200 ns222256
Bun不可用: unavailable
Class Constructionn=100000

classes/class-construction?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器418 ms327 ms66.2 ms61
编译42.7 µs39.7 µs3.4 µs22032
Node.js326 µs294 µs26.1 µs2304
Bun不可用: unavailable
Class Field Reusen=1000

classes/class-field-reuse?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器2.95 ms2.43 ms1.12 ms1021
编译2.5 µs500 ns10.8 µs1000001
Node.js400 ns300 ns100 ns2004096
Bun不可用: unavailable
Class Field Reusen=10000

classes/class-field-reuse?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器7.04 ms5.54 ms851 µs431
编译5.2 µs4.9 µs400 ns227256
Node.js6.4 µs6 µs300 ns185256
Bun不可用: unavailable
Class Field Reusen=100000

classes/class-field-reuse?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器70 ms68.1 ms2.9 ms81
编译51.3 µs48.9 µs2.5 µs18332
Node.js84.1 µs81.3 µs3.7 µs22316
Bun不可用: unavailable
Class Method Inheritance Basen=1000

classes/class-method-inheritance-base?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器909 µs818 µs53.1 µs1662
编译900 ns500 ns2 µs2747128
Node.js400 ns300 ns0 ns2014096
Bun不可用: unavailable
Class Method Inheritance Basen=10000

classes/class-method-inheritance-base?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器9.68 ms8.19 ms780 µs321
编译4.9 µs4.6 µs200 ns240256
Node.js6.4 µs6 µs400 ns183256
Bun不可用: unavailable
Class Method Inheritance Basen=100000

classes/class-method-inheritance-base?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器103 ms96.7 ms4.73 ms81
编译52.2 µs50.5 µs2.8 µs18032
Node.js90.9 µs88.3 µs3.1 µs20716
Bun不可用: unavailable
Class Method Inheritedn=1000

classes/class-method-inherited?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器847 µs745 µs67.2 µs3551
编译1.1 µs500 ns2.2 µs2151128
Node.js1 µs1 µs0 ns1472048
Bun不可用: unavailable
Class Method Inheritedn=10000

classes/class-method-inherited?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器9.77 ms8.32 ms659 µs311
编译5.1 µs4.9 µs300 ns232256
Node.js10.6 µs10 µs500 ns222128
Bun不可用: unavailable
Class Method Inheritedn=100000

classes/class-method-inherited?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器108 ms105 ms1.45 ms81
编译58.1 µs50.9 µs11.2 µs16232
Node.js94.8 µs87.5 µs4.1 µs19816
Bun不可用: unavailable
Class Method Overriden=1000

classes/class-method-override?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器921 µs809 µs72.5 µs1632
编译2.8 µs600 ns12.1 µs1000001
Node.js1 µs1 µs0 ns1472048
Bun不可用: unavailable
Class Method Overriden=10000

classes/class-method-override?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器9.95 ms7.66 ms892 µs311
编译4.9 µs4.8 µs200 ns238256
Node.js10.4 µs10 µs300 ns225128
Bun不可用: unavailable
Class Method Overriden=100000

classes/class-method-override?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器113 ms107 ms5.99 ms81
编译56.6 µs50.4 µs3 µs33216
Node.js96.8 µs90.2 µs4.6 µs19416
Bun不可用: unavailable
Class Method Reusen=1000

classes/class-method-reuse?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器2.3 ms919 µs1.72 ms1311
编译800 ns500 ns1.6 µs3074128
Node.js400 ns300 ns0 ns1994096
Bun不可用: unavailable
Class Method Reusen=10000

classes/class-method-reuse?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器9.64 ms8.07 ms745 µs321
编译5.1 µs4.9 µs500 ns229256
Node.js6.6 µs6.1 µs900 ns178256
Bun不可用: unavailable
Class Method Reusen=100000

classes/class-method-reuse?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器101 ms94.5 ms3.55 ms81
编译56.1 µs48.6 µs7.1 µs33516
Node.js91.9 µs88.5 µs5.1 µs20516
Bun不可用: unavailable
Class Method Supern=1000

classes/class-method-super?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.55 ms1.3 ms131 µs1941
编译1 µs500 ns2.2 µs2372128
Node.js1 µs1 µs100 ns2951024
Bun不可用: unavailable
Class Method Supern=10000

classes/class-method-super?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器16.9 ms16.3 ms402 µs181
编译5.3 µs4.9 µs400 ns222256
Node.js10.7 µs10.2 µs700 ns219128
Bun不可用: unavailable
Class Method Supern=100000

classes/class-method-super?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器217 ms201 ms12.1 ms81
编译55.6 µs50.3 µs4.6 µs33816
Node.js114 µs111 µs3.3 µs16516
Bun不可用: unavailable
Closuresn=1000

closures/closures?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器4.24 ms1.43 ms2.26 ms711
编译3.8 µs1.6 µs7.3 µs785991
Node.js18.3 µs14.3 µs2.8 µs128128
Bun不可用: unavailable
Closuresn=10000

closures/closures?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器11.7 ms7.31 ms3.04 ms261
编译20.3 µs17.7 µs3.3 µs23264
Node.js141 µs117 µs22 µs2668
Bun不可用: unavailable
Closuresn=100000

closures/closures?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器65.8 ms61.8 ms3.95 ms81
编译210 µs187 µs32.6 µs1808
Node.js1.8 ms1.28 ms360 µs1671
Bun不可用: unavailable
Count Primesn=1000

count-primes/count-primes?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器12.8 ms9.27 ms5.48 ms241
编译12.4 µs6.2 µs19.6 µs242021
Node.js2.8 µs2.5 µs300 ns209512
Bun不可用: unavailable
Count Primesn=10000

count-primes/count-primes?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器59.8 ms24.3 ms37.4 ms81
编译79.7 µs71.3 µs5.8 µs23616
Node.js39.6 µs36.4 µs3 µs23732
Bun不可用: unavailable
Count Primesn=100000

count-primes/count-primes?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器256 ms215 ms28.7 ms81
编译935 µs760 µs193 µs1612
Node.js891 µs721 µs183 µs1692
Bun不可用: unavailable
Date Numericn=100

date-numeric/date-numeric?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器378 µs287 µs323 µs7951
编译2.2 µs1.8 µs9.1 µs1000001
Node.js700 ns600 ns100 ns2002048
Bun不可用: unavailable
Date Numericn=10000

date-numeric/date-numeric?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器12.6 ms5.59 ms12.5 ms241
编译48.9 µs42.8 µs14.3 µs7678
Node.js64.6 µs56.3 µs5.9 µs29116
Bun不可用: unavailable
Date Numericn=100000

date-numeric/date-numeric?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器54.3 ms53.6 ms660 µs81
编译465 µs433 µs21.2 µs1624
Node.js659 µs549 µs132 µs4561
Bun不可用: unavailable
Throw Branch Controln=100000

exceptions/throw-branch-control?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器96.9 ms43.9 ms93.7 ms81
编译412 µs292 µs586 µs7291
Node.js186 µs116 µs381 µs16131
Bun不可用: unavailable
Throw Errorn=100000

exceptions/throw-error?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器101 ms64.1 ms23.5 ms81
编译4.97 ms1.95 ms6.02 ms651
Node.js1.84 ms718 µs4.28 ms1641
Bun不可用: unavailable
Throw Primitiven=100000

exceptions/throw-primitive?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器120 ms69.7 ms24.3 ms81
编译415 µs270 µs242 µs7241
Node.js302 µs170 µs824 µs2544
Bun不可用: unavailable
Throw Try Catch No Thrown=100000

exceptions/throw-try-catch-no-throw?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器81.2 ms53.3 ms26.3 ms81
编译414 µs295 µs588 µs7251
Node.js178 µs117 µs67.5 µs2118
Bun不可用: unavailable
Factorialn=100

factorial/factorial?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器167 µs49 µs281 µs17961
编译1.1 µs800 ns6.5 µs1000001
Node.js100 ns100 ns0 ns30616384
Bun不可用: unavailable
Factorialn=1000

factorial/factorial?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器424 µs337 µs69.3 µs1774
编译1.6 µs1 µs1.3 µs749256
Node.js900 ns900 ns0 ns3151024
Bun不可用: unavailable
Factorialn=10000

factorial/factorial?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器3.44 ms3.01 ms250 µs881
编译9.7 µs9.3 µs400 ns243128
Node.js9.1 µs8.5 µs400 ns257128
Bun不可用: unavailable
Fibonaccin=10

fibonacci/fibonacci?n=10

原始测量

平均值最小值标准差样本数内部迭代
解释器496 µs383 µs463 µs6051
编译1.4 µs800 ns17.9 µs1000001
Node.js1 µs600 ns400 ns2941024
Bun不可用: unavailable
Fibonaccin=20

fibonacci/fibonacci?n=20

原始测量

平均值最小值标准差样本数内部迭代
解释器38.2 ms10.2 ms23.6 ms81
编译51.6 µs37.6 µs25.6 µs36416
Node.js123 µs83.3 µs40.3 µs3078
Bun不可用: unavailable
Fibonaccin=30

fibonacci/fibonacci?n=30

原始测量

平均值最小值标准差样本数内部迭代
解释器1.18 s1.15 s39.1 ms21
编译16.8 ms4.46 ms19.9 ms181
Node.js13.5 ms12.1 ms1.08 ms231
Bun不可用: unavailable
Fibonaccin=35

fibonacci/fibonacci?n=35

原始测量

平均值最小值标准差样本数内部迭代
解释器13.4 s13.4 s0 ns11
编译64.5 ms51.3 ms7.67 ms81
Node.js145 ms140 ms3.29 ms81
Bun不可用: unavailable
Accumulaten=1000

int-arrays/accumulate?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器3.9 ms2.82 ms464 µs771
编译4.5 µs3.5 µs1.3 µs260256
Node.js5.1 µs3.2 µs900 ns229256
Bun不可用: unavailable
Accumulaten=100000

int-arrays/accumulate?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器264 ms244 ms17.8 ms81
编译496 µs459 µs41.6 µs1524
Node.js476 µs388 µs246 µs1584
Bun不可用: unavailable
Accumulaten=1000000

int-arrays/accumulate?n=1000000

原始测量

平均值最小值标准差样本数内部迭代
解释器2.63 s2.63 s0 ns11
编译3.96 ms3.38 ms418 µs761
Node.js3.74 ms3.35 ms371 µs811
Bun不可用: unavailable
Int32 Kerneln=1000

int-arrays/int32-kernel?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器5.58 ms2.01 ms3.44 ms541
编译4 µs2 µs10.1 µs754521
Node.js2.8 µs2.3 µs300 ns206512
Bun不可用: unavailable
Int32 Kerneln=100000

int-arrays/int32-kernel?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器133 ms116 ms22.3 ms81
编译292 µs268 µs38.1 µs1298
Node.js278 µs228 µs132 µs1358
Bun不可用: unavailable
Int32 Kerneln=1000000

int-arrays/int32-kernel?n=1000000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.2 s1.16 s48.5 ms21
编译2.76 ms2.59 ms166 µs1091
Node.js2.19 ms1.98 ms239 µs1381
Bun不可用: unavailable
Jsonn=100

json/json?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器1.08 ms726 µs1.56 ms2791
编译16.4 µs7.8 µs190 µs182551
Node.js21.3 µs19.2 µs2.9 µs22164
Bun不可用: unavailable
Jsonn=1000

json/json?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器12.7 ms11.4 ms1.63 ms241
编译93.5 µs76.5 µs12.1 µs20116
Node.js205 µs176 µs29.4 µs1838
Bun不可用: unavailable
Jsonn=10000

json/json?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器57 ms27.1 ms22.6 ms81
编译3.91 ms867 µs4.94 ms771
Node.js2.44 ms2.03 ms355 µs1231
Bun不可用: unavailable
Flattened Rest Controln=1000

language-hot-paths/flattened-rest-control?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器356 µs301 µs36.1 µs2114
编译2.1 µs1.5 µs1.2 µs556256
Node.js400 ns400 ns0 ns1744096
Bun不可用: unavailable
Flattened Rest Controln=10000

language-hot-paths/flattened-rest-control?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器3.66 ms3.36 ms224 µs821
编译16.3 µs15.5 µs1 µs144128
Node.js6.6 µs5.2 µs1.2 µs178256
Bun不可用: unavailable
Flattened Rest Controln=100000

language-hot-paths/flattened-rest-control?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器34 ms33.2 ms568 µs91
编译164 µs155 µs6.5 µs2298
Node.js192 µs181 µs9 µs1968
Bun不可用: unavailable
Format Fixedn=1000

language-hot-paths/format-fixed?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器881 µs706 µs165 µs3411
编译106 µs39.1 µs94.4 µs28221
Node.js63.6 µs59.5 µs5.4 µs14832
Bun不可用: unavailable
Format Fixedn=10000

language-hot-paths/format-fixed?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器7.95 ms7.46 ms287 µs381
编译461 µs423 µs42.2 µs3262
Node.js1.05 ms928 µs158 µs2871
Bun不可用: unavailable
Format Fixedn=100000

language-hot-paths/format-fixed?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器79.9 ms77.7 ms1.79 ms81
编译4.75 ms4.46 ms291 µs641
Node.js8.5 ms7.84 ms299 µs361
Bun不可用: unavailable
Generator Rangen=1000

language-hot-paths/generator-range?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.77 ms1.22 ms1.18 ms1701
编译3.6 µs1.9 µs5.6 µs129264
Node.js9.2 µs8.3 µs900 ns255128
Bun不可用: unavailable
Generator Rangen=10000

language-hot-paths/generator-range?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器13.9 ms12.5 ms1.05 ms221
编译20 µs19.1 µs1.5 µs23564
Node.js213 µs149 µs60.5 µs1778
Bun不可用: unavailable
Generator Rangen=100000

language-hot-paths/generator-range?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器132 ms121 ms5.9 ms81
编译239 µs200 µs28.1 µs1578
Node.js1.17 ms1 ms88.5 µs2571
Bun不可用: unavailable
Numeric Assignment Controln=1000

language-hot-paths/numeric-assignment-control?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器296 µs255 µs46.7 µs2544
编译600 ns400 ns600 ns1037512
Node.js300 ns300 ns0 ns2534096
Bun不可用: unavailable
Numeric Assignment Controln=10000

language-hot-paths/numeric-assignment-control?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器2.74 ms2.45 ms204 µs1101
编译4.2 µs4 µs300 ns283256
Node.js3.9 µs3.7 µs300 ns149512
Bun不可用: unavailable
Numeric Assignment Controln=100000

language-hot-paths/numeric-assignment-control?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器26.9 ms26.1 ms606 µs121
编译42.9 µs41.2 µs2.6 µs21932
Node.js82 µs68.4 µs17.3 µs22916
Bun不可用: unavailable
Numeric Compoundn=1000

language-hot-paths/numeric-compound?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.2 ms362 µs1.28 ms2501
编译2 µs400 ns5.4 µs1000001
Node.js300 ns300 ns0 ns2544096
Bun不可用: unavailable
Numeric Compoundn=10000

language-hot-paths/numeric-compound?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器3.66 ms3.26 ms216 µs821
编译4.2 µs4 µs300 ns281256
Node.js3.7 µs3.6 µs200 ns157512
Bun不可用: unavailable
Numeric Compoundn=100000

language-hot-paths/numeric-compound?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器37 ms35.5 ms1.46 ms91
编译41.7 µs39.6 µs3.4 µs22632
Node.js91.5 µs78.8 µs22.8 µs20616
Bun不可用: unavailable
Parse Integersn=1000

language-hot-paths/parse-integers?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器838 µs608 µs316 µs3591
编译600 ns400 ns700 ns927512
Node.js4.6 µs4.4 µs400 ns255256
Bun不可用: unavailable
Parse Integersn=10000

language-hot-paths/parse-integers?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器6.67 ms6.09 ms394 µs461
编译4.2 µs4 µs200 ns282256
Node.js84 µs73.6 µs18.2 µs22416
Bun不可用: unavailable
Parse Integersn=100000

language-hot-paths/parse-integers?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器68.5 ms64.2 ms2.41 ms81
编译43.1 µs39.6 µs4.5 µs21832
Node.js1.54 ms1.33 ms226 µs1961
Bun不可用: unavailable
Stable Numeric Restn=1000

language-hot-paths/stable-numeric-rest?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器947 µs825 µs96.8 µs3171
编译1 µs600 ns1.1 µs597512
Node.js300 ns300 ns200 ns7420128
Bun不可用: unavailable
Stable Numeric Restn=10000

language-hot-paths/stable-numeric-rest?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器9.43 ms8.68 ms515 µs321
编译5.8 µs5.5 µs400 ns204256
Node.js6.6 µs6.3 µs500 ns179256
Bun不可用: unavailable
Stable Numeric Restn=100000

language-hot-paths/stable-numeric-rest?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器95.3 ms93.2 ms1.71 ms81
编译59.7 µs55 µs3.8 µs15832
Node.js430 µs72.4 µs432 µs6991
Bun不可用: unavailable
Map Iterationn=100

map-set/map-iteration?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器188 µs95.8 µs65.1 µs15961
编译3.2 µs2.1 µs1.7 µs369256
Node.js2.1 µs1.9 µs100 ns275512
Bun不可用: unavailable
Map Iterationn=1000

map-set/map-iteration?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.03 ms906 µs114 µs1462
编译23.5 µs20.3 µs1.7 µs20064
Node.js15 µs13.3 µs2.4 µs31264
Bun不可用: unavailable
Map Iterationn=10000

map-set/map-iteration?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器14.5 ms10.7 ms4.44 ms211
编译513 µs273 µs228 µs2932
Node.js432 µs367 µs140 µs3482
Bun不可用: unavailable
Map Operationsn=100

map-set/map-operations?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器997 µs488 µs779 µs3011
编译4.7 µs1.6 µs13.7 µs643691
Node.js2.3 µs2 µs100 ns254512
Bun不可用: unavailable
Map Operationsn=1000

map-set/map-operations?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.92 ms1.58 ms233 µs1571
编译18.4 µs16.5 µs1.4 µs25564
Node.js19.6 µs15.7 µs2.5 µs24064
Bun不可用: unavailable
Map Operationsn=10000

map-set/map-operations?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器23.3 ms21.6 ms1.3 ms131
编译358 µs206 µs113 µs1058
Node.js543 µs452 µs269 µs5531
Bun不可用: unavailable
Set Iterationn=100

map-set/set-iteration?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器73.3 µs62.2 µs10.6 µs25616
编译3.8 µs2.5 µs1.8 µs310256
Node.js1.9 µs1.6 µs400 ns1531024
Bun不可用: unavailable
Set Iterationn=1000

map-set/set-iteration?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器786 µs688 µs102 µs1912
编译26.1 µs23 µs1.9 µs18064
Node.js11.8 µs10.4 µs1.1 µs199128
Bun不可用: unavailable
Set Iterationn=10000

map-set/set-iteration?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器9.78 ms6.73 ms2.91 ms311
编译444 µs243 µs349 µs6781
Node.js362 µs295 µs161 µs2084
Bun不可用: unavailable
Set Operationsn=100

map-set/set-operations?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器152 µs126 µs43.1 µs19811
编译4.2 µs2.4 µs2.5 µs556128
Node.js1.7 µs1.6 µs100 ns1751024
Bun不可用: unavailable
Set Operationsn=1000

map-set/set-operations?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.63 ms1.41 ms192 µs1841
编译27.9 µs22.8 µs4.7 µs33732
Node.js18.1 µs15.8 µs2.1 µs25964
Bun不可用: unavailable
Set Operationsn=10000

map-set/set-operations?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器16.1 ms14.6 ms1.02 ms191
编译529 µs284 µs224 µs1424
Node.js501 µs426 µs194 µs3002
Bun不可用: unavailable
Num Pushn=1000

num-arrays/num-push?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.47 ms816 µs349 µs2051
编译5.2 µs3.1 µs5.2 µs90064
Node.js3.2 µs2.9 µs200 ns186512
Bun不可用: unavailable
Num Pushn=100000

num-arrays/num-push?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器114 ms98.2 ms14.5 ms81
编译777 µs682 µs201 µs1942
Node.js719 µs553 µs524 µs4211
Bun不可用: unavailable
Num Pushn=1000000

num-arrays/num-push?n=1000000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.03 s1.01 s20.7 ms21
编译5.38 ms3.94 ms1.48 ms561
Node.js8.61 ms7.42 ms833 µs351
Bun不可用: unavailable
Num Writen=1000

num-arrays/num-write?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器4.36 ms3.24 ms2.48 ms691
编译32.6 µs25 µs38 µs92131
Node.js2.7 µs2.5 µs300 ns214512
Bun不可用: unavailable
Num Writen=100000

num-arrays/num-write?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器110 ms82.9 ms57.4 ms81
编译801 µs716 µs93.6 µs1882
Node.js758 µs575 µs209 µs1982
Bun不可用: unavailable
Num Writen=1000000

num-arrays/num-write?n=1000000

原始测量

平均值最小值标准差样本数内部迭代
解释器922 ms877 ms39.6 ms31
编译5.73 ms4.34 ms1.51 ms531
Node.js8.59 ms6.76 ms2.14 ms351
Bun不可用: unavailable
Objectsn=1000

objects/objects?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器2.03 ms528 µs1.66 ms1481
编译2.4 µs800 ns6 µs1000001
Node.js1.2 µs700 ns1 µs1262048
Bun不可用: unavailable
Objectsn=10000

objects/objects?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器5.67 ms5.15 ms339 µs531
编译8.3 µs7.9 µs700 ns281128
Node.js22.6 µs14.4 µs7.1 µs104128
Bun不可用: unavailable
Objectsn=100000

objects/objects?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器56 ms54.6 ms1.36 ms81
编译87.4 µs78.2 µs7.2 µs21516
Node.js405 µs143 µs292 µs7421
Bun不可用: unavailable
Regex Validatorn=100

regex-validator/regex-validator?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器4.26 ms1.66 ms6.86 ms711
编译17.3 µs5.4 µs205 µs173051
Node.js6 µs3.1 µs1.2 µs195256
Bun不可用: unavailable
Regex Validatorn=10000

regex-validator/regex-validator?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器191 ms62.3 ms136 ms81
编译799 µs559 µs171 µs1882
Node.js605 µs268 µs122 µs4961
Bun不可用: unavailable
Regex Validatorn=100000

regex-validator/regex-validator?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器850 ms719 ms119 ms31
编译8.41 ms6.3 ms1.4 ms361
Node.js6.28 ms5.11 ms647 µs481
Bun不可用: unavailable
Regexn=100

regex/regex?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器371 µs109 µs942 µs8091
编译227 µs96.9 µs790 µs13201
Node.js34.6 µs27.1 µs7 µs13664
Bun不可用: unavailable
Regexn=1000

regex/regex?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器464 µs377 µs121 µs3242
编译804 µs545 µs307 µs1872
Node.js380 µs265 µs136 µs3952
Bun不可用: unavailable
Regexn=10000

regex/regex?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器3.9 ms3.3 ms1.15 ms781
编译6.1 ms4.83 ms967 µs501
Node.js4.5 ms2.84 ms1.75 ms681
Bun不可用: unavailable
Sortn=100

sort/sort?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器521 µs437 µs438 µs5761
编译83.3 µs64.6 µs115 µs36011
Node.js9.1 µs7.9 µs1.4 µs257128
Bun不可用: unavailable
Sortn=1000

sort/sort?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器10.5 ms9.38 ms2.14 ms291
编译266 µs165 µs192 µs5652
Node.js230 µs206 µs13.8 µs1648
Bun不可用: unavailable
Sortn=10000

sort/sort?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器35.3 ms26 ms10.2 ms91
编译2.77 ms2.37 ms616 µs1091
Node.js2.94 ms2.69 ms189 µs1031
Bun不可用: unavailable
Stringsn=100

strings/strings?n=100

原始测量

平均值最小值标准差样本数内部迭代
解释器918 µs678 µs723 µs3271
编译2.7 µs2 µs5.8 µs1000001
Node.js1 µs900 ns100 ns2891024
Bun不可用: unavailable
Stringsn=1000

strings/strings?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器5.18 ms1.86 ms2.38 ms581
编译9.6 µs7.7 µs2.2 µs246128
Node.js8.9 µs8 µs800 ns264128
Bun不可用: unavailable
Stringsn=10000

strings/strings?n=10000

原始测量

平均值最小值标准差样本数内部迭代
解释器26 ms23.7 ms2.02 ms121
编译80.9 µs75.5 µs2.7 µs23216
Node.js96.4 µs80.8 µs15.2 µs19516
Bun不可用: unavailable
Typed Arraysn=1000

typed-arrays/typed-arrays?n=1000

原始测量

平均值最小值标准差样本数内部迭代
解释器6.77 ms5.14 ms2.33 ms451
编译3.7 µs2 µs7.9 µs815641
Node.js3.8 µs2.2 µs1.9 µs621128
Bun不可用: unavailable
Typed Arraysn=100000

typed-arrays/typed-arrays?n=100000

原始测量

平均值最小值标准差样本数内部迭代
解释器175 ms123 ms63 ms81
编译330 µs248 µs72.4 µs4562
Node.js392 µs330 µs219 µs1924
Bun不可用: unavailable
Typed Arraysn=1000000

typed-arrays/typed-arrays?n=1000000

原始测量

平均值最小值标准差样本数内部迭代
解释器1.2 s1.16 s58.2 ms21
编译2.24 ms1.93 ms304 µs1341
Node.js2.79 ms2.57 ms285 µs1081
Bun不可用: unavailable

显示 128 个基准用例。

工程上限

编译器提升空间

在同一次 BenchmarkDotNet 测试中,将 SharpTS 编译的 TypeScript 与等价动态 C# 和惯用 C# 比较。

此 SharpTS 版本尚未签入审核后的 compiler-micro 快照。面板已准备好接收下一次发布的 schema-v2 测试。

发布约束

桌面性能预算

GUI 延迟、内存分配、启动、内存和发布大小数据与 Node 比较保持分离。

尚未签入审核后的 GUI 快照。缺失数据绝不会显示为零或预算通过。

理解数据

测试方法与来源

绝对测量值只在同一个绑定机器的测试内比较。绝不会合并不同测试套件或环境。

Cross-runtime
环境
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

原始标准化 JSON · Pinned SharpTS 7c601010