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.

Geometric mean vs Node1.12×128 comparable cases
Faster than Node57128 comparable cases
Within 5% of Node6128 comparable cases
Still behind65128 comparable cases

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=1000

array-methods/array-methods?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.48 ms3.97 ms2.88 ms551
Compiled15.8 µs8.6 µs20.2 µs190131
Node.js13 µs11.2 µs1.5 µs180128
BunUnavailable: unavailable
Array Methodsn=10000

array-methods/array-methods?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter38.3 ms13.1 ms20.1 ms81
Compiled138 µs116 µs12.2 µs13616
Node.js116 µs112 µs4.1 µs16216
BunUnavailable: unavailable
Array Methodsn=100000

array-methods/array-methods?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter125 ms115 ms12.4 ms81
Compiled1.24 ms1.07 ms132 µs2421
Node.js2.2 ms1.89 ms457 µs1371
BunUnavailable: unavailable
Async Function Callsn=10

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter25.6 µs12.2 µs16.3 µs73316
Compiled200 ns100 ns100 ns2128192
Node.js400 ns300 ns0 ns1984096
BunUnavailable: unavailable
Async Function Callsn=100

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter123 µs105 µs17.3 µs15316
Compiled100 ns100 ns0 ns2528192
Node.js2.7 µs2.5 µs200 ns220512
BunUnavailable: unavailable
Async Function Callsn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.32 ms1.01 ms1.26 ms2281
Compiled500 ns500 ns100 ns2842048
Node.js24.8 µs21.5 µs2.6 µs19064
BunUnavailable: unavailable
Async Resolved Awaitn=10

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter74.6 µs45.5 µs254 µs40211
Compiled600 ns300 ns14 µs1000001
Node.js400 ns300 ns100 ns1784096
BunUnavailable: unavailable
Async Resolved Awaitn=100

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter268 µs111 µs321 µs7216
Compiled100 ns100 ns0 ns2648192
Node.js2.8 µs2.5 µs300 ns211512
BunUnavailable: unavailable
Async Resolved Awaitn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.41 ms1.06 ms3.78 ms1261
Compiled500 ns500 ns100 ns2832048
Node.js25.9 µs22.7 µs2.9 µs18164
BunUnavailable: unavailable
Promise Alln=10

async-promises/promise-all?n=10

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter70.7 µs33.1 µs454 µs42871
Compiled1.1 µs700 ns15 µs1000001
Node.js500 ns400 ns0 ns1584096
BunUnavailable: unavailable
Promise Alln=100

async-promises/promise-all?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter492 µs255 µs817 µs3092
Compiled1.2 µs800 ns500 ns2371024
Node.js3.2 µs2.8 µs400 ns182512
BunUnavailable: unavailable
Promise Alln=1000

async-promises/promise-all?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.68 ms2.47 ms3.61 ms661
Compiled5.6 µs4.4 µs1.1 µs212256
Node.js30.2 µs27.1 µs2 µs15664
BunUnavailable: unavailable
Promise Then Chainn=10

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter25.9 µs15.2 µs80.9 µs115751
Compiled1.8 µs1 µs24.2 µs1000001
Node.js300 ns300 ns0 ns2214096
BunUnavailable: unavailable
Promise Then Chainn=100

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter197 µs135 µs101 µs1918
Compiled3.1 µs2.2 µs1.9 µs746128
Node.js2.5 µs2.2 µs300 ns234512
BunUnavailable: unavailable
Promise Then Chainn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.74 ms1.28 ms609 µs1721
Compiled23.4 µs18 µs4.8 µs20164
Node.js25 µs21.2 µs3.2 µs37632
BunUnavailable: unavailable
Binary Treesn=12

binary-trees/binary-trees?n=12

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter34.5 ms16.2 ms13 ms91
Compiled60.4 µs52.1 µs6.1 µs15632
Node.js80.5 µs70.1 µs8.2 µs23316
BunUnavailable: unavailable
Binary Treesn=16

binary-trees/binary-trees?n=16

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter302 ms262 ms25.5 ms71
Compiled1.44 ms787 µs1.08 ms2091
Node.js1.4 ms1.11 ms459 µs2151
BunUnavailable: unavailable
Binary Treesn=8

binary-trees/binary-trees?n=8

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.13 ms2.94 ms1.59 ms731
Compiled4.9 µs3.3 µs8.4 µs615331
Node.js4.3 µs3.9 µs300 ns274256
BunUnavailable: unavailable
Brainfuckn=50

brainfuck/brainfuck?n=50

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter110 ms54.4 ms94.9 ms81
Compiled227 µs205 µs97.5 µs13201
Node.js170 µs132 µs69.2 µs17611
BunUnavailable: unavailable
Brainfuckn=500

brainfuck/brainfuck?n=500

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter538 ms522 ms15.6 ms41
Compiled2.11 ms2.05 ms82.2 µs1431
Node.js1.79 ms1.64 ms131 µs1681
BunUnavailable: unavailable
Brainfuckn=5000

brainfuck/brainfuck?n=5000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.73 s5.73 s0 ns11
Compiled21.4 ms20.9 ms487 µs151
Node.js17.8 ms17.1 ms446 µs171
BunUnavailable: unavailable
Class Constructionn=1000

classes/class-construction?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.84 ms1.19 ms1.04 ms1641
Compiled800 ns500 ns800 ns771512
Node.js300 ns300 ns0 ns2574096
BunUnavailable: unavailable
Class Constructionn=10000

classes/class-construction?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter23 ms18.4 ms3.21 ms141
Compiled4.5 µs4.2 µs500 ns526128
Node.js5.3 µs5 µs200 ns222256
BunUnavailable: unavailable
Class Constructionn=100000

classes/class-construction?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter418 ms327 ms66.2 ms61
Compiled42.7 µs39.7 µs3.4 µs22032
Node.js326 µs294 µs26.1 µs2304
BunUnavailable: unavailable
Class Field Reusen=1000

classes/class-field-reuse?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.95 ms2.43 ms1.12 ms1021
Compiled2.5 µs500 ns10.8 µs1000001
Node.js400 ns300 ns100 ns2004096
BunUnavailable: unavailable
Class Field Reusen=10000

classes/class-field-reuse?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.04 ms5.54 ms851 µs431
Compiled5.2 µs4.9 µs400 ns227256
Node.js6.4 µs6 µs300 ns185256
BunUnavailable: unavailable
Class Field Reusen=100000

classes/class-field-reuse?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter70 ms68.1 ms2.9 ms81
Compiled51.3 µs48.9 µs2.5 µs18332
Node.js84.1 µs81.3 µs3.7 µs22316
BunUnavailable: unavailable
Class Method Inheritance Basen=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter909 µs818 µs53.1 µs1662
Compiled900 ns500 ns2 µs2747128
Node.js400 ns300 ns0 ns2014096
BunUnavailable: unavailable
Class Method Inheritance Basen=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.68 ms8.19 ms780 µs321
Compiled4.9 µs4.6 µs200 ns240256
Node.js6.4 µs6 µs400 ns183256
BunUnavailable: unavailable
Class Method Inheritance Basen=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter103 ms96.7 ms4.73 ms81
Compiled52.2 µs50.5 µs2.8 µs18032
Node.js90.9 µs88.3 µs3.1 µs20716
BunUnavailable: unavailable
Class Method Inheritedn=1000

classes/class-method-inherited?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter847 µs745 µs67.2 µs3551
Compiled1.1 µs500 ns2.2 µs2151128
Node.js1 µs1 µs0 ns1472048
BunUnavailable: unavailable
Class Method Inheritedn=10000

classes/class-method-inherited?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.77 ms8.32 ms659 µs311
Compiled5.1 µs4.9 µs300 ns232256
Node.js10.6 µs10 µs500 ns222128
BunUnavailable: unavailable
Class Method Inheritedn=100000

classes/class-method-inherited?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter108 ms105 ms1.45 ms81
Compiled58.1 µs50.9 µs11.2 µs16232
Node.js94.8 µs87.5 µs4.1 µs19816
BunUnavailable: unavailable
Class Method Overriden=1000

classes/class-method-override?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter921 µs809 µs72.5 µs1632
Compiled2.8 µs600 ns12.1 µs1000001
Node.js1 µs1 µs0 ns1472048
BunUnavailable: unavailable
Class Method Overriden=10000

classes/class-method-override?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.95 ms7.66 ms892 µs311
Compiled4.9 µs4.8 µs200 ns238256
Node.js10.4 µs10 µs300 ns225128
BunUnavailable: unavailable
Class Method Overriden=100000

classes/class-method-override?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter113 ms107 ms5.99 ms81
Compiled56.6 µs50.4 µs3 µs33216
Node.js96.8 µs90.2 µs4.6 µs19416
BunUnavailable: unavailable
Class Method Reusen=1000

classes/class-method-reuse?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.3 ms919 µs1.72 ms1311
Compiled800 ns500 ns1.6 µs3074128
Node.js400 ns300 ns0 ns1994096
BunUnavailable: unavailable
Class Method Reusen=10000

classes/class-method-reuse?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.64 ms8.07 ms745 µs321
Compiled5.1 µs4.9 µs500 ns229256
Node.js6.6 µs6.1 µs900 ns178256
BunUnavailable: unavailable
Class Method Reusen=100000

classes/class-method-reuse?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter101 ms94.5 ms3.55 ms81
Compiled56.1 µs48.6 µs7.1 µs33516
Node.js91.9 µs88.5 µs5.1 µs20516
BunUnavailable: unavailable
Class Method Supern=1000

classes/class-method-super?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.55 ms1.3 ms131 µs1941
Compiled1 µs500 ns2.2 µs2372128
Node.js1 µs1 µs100 ns2951024
BunUnavailable: unavailable
Class Method Supern=10000

classes/class-method-super?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter16.9 ms16.3 ms402 µs181
Compiled5.3 µs4.9 µs400 ns222256
Node.js10.7 µs10.2 µs700 ns219128
BunUnavailable: unavailable
Class Method Supern=100000

classes/class-method-super?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter217 ms201 ms12.1 ms81
Compiled55.6 µs50.3 µs4.6 µs33816
Node.js114 µs111 µs3.3 µs16516
BunUnavailable: unavailable
Closuresn=1000

closures/closures?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.24 ms1.43 ms2.26 ms711
Compiled3.8 µs1.6 µs7.3 µs785991
Node.js18.3 µs14.3 µs2.8 µs128128
BunUnavailable: unavailable
Closuresn=10000

closures/closures?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter11.7 ms7.31 ms3.04 ms261
Compiled20.3 µs17.7 µs3.3 µs23264
Node.js141 µs117 µs22 µs2668
BunUnavailable: unavailable
Closuresn=100000

closures/closures?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter65.8 ms61.8 ms3.95 ms81
Compiled210 µs187 µs32.6 µs1808
Node.js1.8 ms1.28 ms360 µs1671
BunUnavailable: unavailable
Count Primesn=1000

count-primes/count-primes?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter12.8 ms9.27 ms5.48 ms241
Compiled12.4 µs6.2 µs19.6 µs242021
Node.js2.8 µs2.5 µs300 ns209512
BunUnavailable: unavailable
Count Primesn=10000

count-primes/count-primes?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter59.8 ms24.3 ms37.4 ms81
Compiled79.7 µs71.3 µs5.8 µs23616
Node.js39.6 µs36.4 µs3 µs23732
BunUnavailable: unavailable
Count Primesn=100000

count-primes/count-primes?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter256 ms215 ms28.7 ms81
Compiled935 µs760 µs193 µs1612
Node.js891 µs721 µs183 µs1692
BunUnavailable: unavailable
Date Numericn=100

date-numeric/date-numeric?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter378 µs287 µs323 µs7951
Compiled2.2 µs1.8 µs9.1 µs1000001
Node.js700 ns600 ns100 ns2002048
BunUnavailable: unavailable
Date Numericn=10000

date-numeric/date-numeric?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter12.6 ms5.59 ms12.5 ms241
Compiled48.9 µs42.8 µs14.3 µs7678
Node.js64.6 µs56.3 µs5.9 µs29116
BunUnavailable: unavailable
Date Numericn=100000

date-numeric/date-numeric?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter54.3 ms53.6 ms660 µs81
Compiled465 µs433 µs21.2 µs1624
Node.js659 µs549 µs132 µs4561
BunUnavailable: unavailable
Throw Branch Controln=100000

exceptions/throw-branch-control?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter96.9 ms43.9 ms93.7 ms81
Compiled412 µs292 µs586 µs7291
Node.js186 µs116 µs381 µs16131
BunUnavailable: unavailable
Throw Errorn=100000

exceptions/throw-error?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter101 ms64.1 ms23.5 ms81
Compiled4.97 ms1.95 ms6.02 ms651
Node.js1.84 ms718 µs4.28 ms1641
BunUnavailable: unavailable
Throw Primitiven=100000

exceptions/throw-primitive?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter120 ms69.7 ms24.3 ms81
Compiled415 µs270 µs242 µs7241
Node.js302 µs170 µs824 µs2544
BunUnavailable: unavailable
Throw Try Catch No Thrown=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter81.2 ms53.3 ms26.3 ms81
Compiled414 µs295 µs588 µs7251
Node.js178 µs117 µs67.5 µs2118
BunUnavailable: unavailable
Factorialn=100

factorial/factorial?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter167 µs49 µs281 µs17961
Compiled1.1 µs800 ns6.5 µs1000001
Node.js100 ns100 ns0 ns30616384
BunUnavailable: unavailable
Factorialn=1000

factorial/factorial?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter424 µs337 µs69.3 µs1774
Compiled1.6 µs1 µs1.3 µs749256
Node.js900 ns900 ns0 ns3151024
BunUnavailable: unavailable
Factorialn=10000

factorial/factorial?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.44 ms3.01 ms250 µs881
Compiled9.7 µs9.3 µs400 ns243128
Node.js9.1 µs8.5 µs400 ns257128
BunUnavailable: unavailable
Fibonaccin=10

fibonacci/fibonacci?n=10

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter496 µs383 µs463 µs6051
Compiled1.4 µs800 ns17.9 µs1000001
Node.js1 µs600 ns400 ns2941024
BunUnavailable: unavailable
Fibonaccin=20

fibonacci/fibonacci?n=20

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter38.2 ms10.2 ms23.6 ms81
Compiled51.6 µs37.6 µs25.6 µs36416
Node.js123 µs83.3 µs40.3 µs3078
BunUnavailable: unavailable
Fibonaccin=30

fibonacci/fibonacci?n=30

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.18 s1.15 s39.1 ms21
Compiled16.8 ms4.46 ms19.9 ms181
Node.js13.5 ms12.1 ms1.08 ms231
BunUnavailable: unavailable
Fibonaccin=35

fibonacci/fibonacci?n=35

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter13.4 s13.4 s0 ns11
Compiled64.5 ms51.3 ms7.67 ms81
Node.js145 ms140 ms3.29 ms81
BunUnavailable: unavailable
Accumulaten=1000

int-arrays/accumulate?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.9 ms2.82 ms464 µs771
Compiled4.5 µs3.5 µs1.3 µs260256
Node.js5.1 µs3.2 µs900 ns229256
BunUnavailable: unavailable
Accumulaten=100000

int-arrays/accumulate?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter264 ms244 ms17.8 ms81
Compiled496 µs459 µs41.6 µs1524
Node.js476 µs388 µs246 µs1584
BunUnavailable: unavailable
Accumulaten=1000000

int-arrays/accumulate?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.63 s2.63 s0 ns11
Compiled3.96 ms3.38 ms418 µs761
Node.js3.74 ms3.35 ms371 µs811
BunUnavailable: unavailable
Int32 Kerneln=1000

int-arrays/int32-kernel?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.58 ms2.01 ms3.44 ms541
Compiled4 µs2 µs10.1 µs754521
Node.js2.8 µs2.3 µs300 ns206512
BunUnavailable: unavailable
Int32 Kerneln=100000

int-arrays/int32-kernel?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter133 ms116 ms22.3 ms81
Compiled292 µs268 µs38.1 µs1298
Node.js278 µs228 µs132 µs1358
BunUnavailable: unavailable
Int32 Kerneln=1000000

int-arrays/int32-kernel?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.2 s1.16 s48.5 ms21
Compiled2.76 ms2.59 ms166 µs1091
Node.js2.19 ms1.98 ms239 µs1381
BunUnavailable: unavailable
Jsonn=100

json/json?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.08 ms726 µs1.56 ms2791
Compiled16.4 µs7.8 µs190 µs182551
Node.js21.3 µs19.2 µs2.9 µs22164
BunUnavailable: unavailable
Jsonn=1000

json/json?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter12.7 ms11.4 ms1.63 ms241
Compiled93.5 µs76.5 µs12.1 µs20116
Node.js205 µs176 µs29.4 µs1838
BunUnavailable: unavailable
Jsonn=10000

json/json?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter57 ms27.1 ms22.6 ms81
Compiled3.91 ms867 µs4.94 ms771
Node.js2.44 ms2.03 ms355 µs1231
BunUnavailable: unavailable
Flattened Rest Controln=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter356 µs301 µs36.1 µs2114
Compiled2.1 µs1.5 µs1.2 µs556256
Node.js400 ns400 ns0 ns1744096
BunUnavailable: unavailable
Flattened Rest Controln=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.66 ms3.36 ms224 µs821
Compiled16.3 µs15.5 µs1 µs144128
Node.js6.6 µs5.2 µs1.2 µs178256
BunUnavailable: unavailable
Flattened Rest Controln=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter34 ms33.2 ms568 µs91
Compiled164 µs155 µs6.5 µs2298
Node.js192 µs181 µs9 µs1968
BunUnavailable: unavailable
Format Fixedn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter881 µs706 µs165 µs3411
Compiled106 µs39.1 µs94.4 µs28221
Node.js63.6 µs59.5 µs5.4 µs14832
BunUnavailable: unavailable
Format Fixedn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.95 ms7.46 ms287 µs381
Compiled461 µs423 µs42.2 µs3262
Node.js1.05 ms928 µs158 µs2871
BunUnavailable: unavailable
Format Fixedn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter79.9 ms77.7 ms1.79 ms81
Compiled4.75 ms4.46 ms291 µs641
Node.js8.5 ms7.84 ms299 µs361
BunUnavailable: unavailable
Generator Rangen=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.77 ms1.22 ms1.18 ms1701
Compiled3.6 µs1.9 µs5.6 µs129264
Node.js9.2 µs8.3 µs900 ns255128
BunUnavailable: unavailable
Generator Rangen=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter13.9 ms12.5 ms1.05 ms221
Compiled20 µs19.1 µs1.5 µs23564
Node.js213 µs149 µs60.5 µs1778
BunUnavailable: unavailable
Generator Rangen=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter132 ms121 ms5.9 ms81
Compiled239 µs200 µs28.1 µs1578
Node.js1.17 ms1 ms88.5 µs2571
BunUnavailable: unavailable
Numeric Assignment Controln=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter296 µs255 µs46.7 µs2544
Compiled600 ns400 ns600 ns1037512
Node.js300 ns300 ns0 ns2534096
BunUnavailable: unavailable
Numeric Assignment Controln=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.74 ms2.45 ms204 µs1101
Compiled4.2 µs4 µs300 ns283256
Node.js3.9 µs3.7 µs300 ns149512
BunUnavailable: unavailable
Numeric Assignment Controln=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter26.9 ms26.1 ms606 µs121
Compiled42.9 µs41.2 µs2.6 µs21932
Node.js82 µs68.4 µs17.3 µs22916
BunUnavailable: unavailable
Numeric Compoundn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.2 ms362 µs1.28 ms2501
Compiled2 µs400 ns5.4 µs1000001
Node.js300 ns300 ns0 ns2544096
BunUnavailable: unavailable
Numeric Compoundn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.66 ms3.26 ms216 µs821
Compiled4.2 µs4 µs300 ns281256
Node.js3.7 µs3.6 µs200 ns157512
BunUnavailable: unavailable
Numeric Compoundn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter37 ms35.5 ms1.46 ms91
Compiled41.7 µs39.6 µs3.4 µs22632
Node.js91.5 µs78.8 µs22.8 µs20616
BunUnavailable: unavailable
Parse Integersn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter838 µs608 µs316 µs3591
Compiled600 ns400 ns700 ns927512
Node.js4.6 µs4.4 µs400 ns255256
BunUnavailable: unavailable
Parse Integersn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.67 ms6.09 ms394 µs461
Compiled4.2 µs4 µs200 ns282256
Node.js84 µs73.6 µs18.2 µs22416
BunUnavailable: unavailable
Parse Integersn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter68.5 ms64.2 ms2.41 ms81
Compiled43.1 µs39.6 µs4.5 µs21832
Node.js1.54 ms1.33 ms226 µs1961
BunUnavailable: unavailable
Stable Numeric Restn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter947 µs825 µs96.8 µs3171
Compiled1 µs600 ns1.1 µs597512
Node.js300 ns300 ns200 ns7420128
BunUnavailable: unavailable
Stable Numeric Restn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.43 ms8.68 ms515 µs321
Compiled5.8 µs5.5 µs400 ns204256
Node.js6.6 µs6.3 µs500 ns179256
BunUnavailable: unavailable
Stable Numeric Restn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter95.3 ms93.2 ms1.71 ms81
Compiled59.7 µs55 µs3.8 µs15832
Node.js430 µs72.4 µs432 µs6991
BunUnavailable: unavailable
Map Iterationn=100

map-set/map-iteration?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter188 µs95.8 µs65.1 µs15961
Compiled3.2 µs2.1 µs1.7 µs369256
Node.js2.1 µs1.9 µs100 ns275512
BunUnavailable: unavailable
Map Iterationn=1000

map-set/map-iteration?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.03 ms906 µs114 µs1462
Compiled23.5 µs20.3 µs1.7 µs20064
Node.js15 µs13.3 µs2.4 µs31264
BunUnavailable: unavailable
Map Iterationn=10000

map-set/map-iteration?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter14.5 ms10.7 ms4.44 ms211
Compiled513 µs273 µs228 µs2932
Node.js432 µs367 µs140 µs3482
BunUnavailable: unavailable
Map Operationsn=100

map-set/map-operations?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter997 µs488 µs779 µs3011
Compiled4.7 µs1.6 µs13.7 µs643691
Node.js2.3 µs2 µs100 ns254512
BunUnavailable: unavailable
Map Operationsn=1000

map-set/map-operations?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.92 ms1.58 ms233 µs1571
Compiled18.4 µs16.5 µs1.4 µs25564
Node.js19.6 µs15.7 µs2.5 µs24064
BunUnavailable: unavailable
Map Operationsn=10000

map-set/map-operations?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter23.3 ms21.6 ms1.3 ms131
Compiled358 µs206 µs113 µs1058
Node.js543 µs452 µs269 µs5531
BunUnavailable: unavailable
Set Iterationn=100

map-set/set-iteration?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter73.3 µs62.2 µs10.6 µs25616
Compiled3.8 µs2.5 µs1.8 µs310256
Node.js1.9 µs1.6 µs400 ns1531024
BunUnavailable: unavailable
Set Iterationn=1000

map-set/set-iteration?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter786 µs688 µs102 µs1912
Compiled26.1 µs23 µs1.9 µs18064
Node.js11.8 µs10.4 µs1.1 µs199128
BunUnavailable: unavailable
Set Iterationn=10000

map-set/set-iteration?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.78 ms6.73 ms2.91 ms311
Compiled444 µs243 µs349 µs6781
Node.js362 µs295 µs161 µs2084
BunUnavailable: unavailable
Set Operationsn=100

map-set/set-operations?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter152 µs126 µs43.1 µs19811
Compiled4.2 µs2.4 µs2.5 µs556128
Node.js1.7 µs1.6 µs100 ns1751024
BunUnavailable: unavailable
Set Operationsn=1000

map-set/set-operations?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.63 ms1.41 ms192 µs1841
Compiled27.9 µs22.8 µs4.7 µs33732
Node.js18.1 µs15.8 µs2.1 µs25964
BunUnavailable: unavailable
Set Operationsn=10000

map-set/set-operations?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter16.1 ms14.6 ms1.02 ms191
Compiled529 µs284 µs224 µs1424
Node.js501 µs426 µs194 µs3002
BunUnavailable: unavailable
Num Pushn=1000

num-arrays/num-push?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.47 ms816 µs349 µs2051
Compiled5.2 µs3.1 µs5.2 µs90064
Node.js3.2 µs2.9 µs200 ns186512
BunUnavailable: unavailable
Num Pushn=100000

num-arrays/num-push?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter114 ms98.2 ms14.5 ms81
Compiled777 µs682 µs201 µs1942
Node.js719 µs553 µs524 µs4211
BunUnavailable: unavailable
Num Pushn=1000000

num-arrays/num-push?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.03 s1.01 s20.7 ms21
Compiled5.38 ms3.94 ms1.48 ms561
Node.js8.61 ms7.42 ms833 µs351
BunUnavailable: unavailable
Num Writen=1000

num-arrays/num-write?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.36 ms3.24 ms2.48 ms691
Compiled32.6 µs25 µs38 µs92131
Node.js2.7 µs2.5 µs300 ns214512
BunUnavailable: unavailable
Num Writen=100000

num-arrays/num-write?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter110 ms82.9 ms57.4 ms81
Compiled801 µs716 µs93.6 µs1882
Node.js758 µs575 µs209 µs1982
BunUnavailable: unavailable
Num Writen=1000000

num-arrays/num-write?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter922 ms877 ms39.6 ms31
Compiled5.73 ms4.34 ms1.51 ms531
Node.js8.59 ms6.76 ms2.14 ms351
BunUnavailable: unavailable
Objectsn=1000

objects/objects?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.03 ms528 µs1.66 ms1481
Compiled2.4 µs800 ns6 µs1000001
Node.js1.2 µs700 ns1 µs1262048
BunUnavailable: unavailable
Objectsn=10000

objects/objects?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.67 ms5.15 ms339 µs531
Compiled8.3 µs7.9 µs700 ns281128
Node.js22.6 µs14.4 µs7.1 µs104128
BunUnavailable: unavailable
Objectsn=100000

objects/objects?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter56 ms54.6 ms1.36 ms81
Compiled87.4 µs78.2 µs7.2 µs21516
Node.js405 µs143 µs292 µs7421
BunUnavailable: unavailable
Regex Validatorn=100

regex-validator/regex-validator?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.26 ms1.66 ms6.86 ms711
Compiled17.3 µs5.4 µs205 µs173051
Node.js6 µs3.1 µs1.2 µs195256
BunUnavailable: unavailable
Regex Validatorn=10000

regex-validator/regex-validator?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter191 ms62.3 ms136 ms81
Compiled799 µs559 µs171 µs1882
Node.js605 µs268 µs122 µs4961
BunUnavailable: unavailable
Regex Validatorn=100000

regex-validator/regex-validator?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter850 ms719 ms119 ms31
Compiled8.41 ms6.3 ms1.4 ms361
Node.js6.28 ms5.11 ms647 µs481
BunUnavailable: unavailable
Regexn=100

regex/regex?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter371 µs109 µs942 µs8091
Compiled227 µs96.9 µs790 µs13201
Node.js34.6 µs27.1 µs7 µs13664
BunUnavailable: unavailable
Regexn=1000

regex/regex?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter464 µs377 µs121 µs3242
Compiled804 µs545 µs307 µs1872
Node.js380 µs265 µs136 µs3952
BunUnavailable: unavailable
Regexn=10000

regex/regex?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.9 ms3.3 ms1.15 ms781
Compiled6.1 ms4.83 ms967 µs501
Node.js4.5 ms2.84 ms1.75 ms681
BunUnavailable: unavailable
Sortn=100

sort/sort?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter521 µs437 µs438 µs5761
Compiled83.3 µs64.6 µs115 µs36011
Node.js9.1 µs7.9 µs1.4 µs257128
BunUnavailable: unavailable
Sortn=1000

sort/sort?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter10.5 ms9.38 ms2.14 ms291
Compiled266 µs165 µs192 µs5652
Node.js230 µs206 µs13.8 µs1648
BunUnavailable: unavailable
Sortn=10000

sort/sort?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter35.3 ms26 ms10.2 ms91
Compiled2.77 ms2.37 ms616 µs1091
Node.js2.94 ms2.69 ms189 µs1031
BunUnavailable: unavailable
Stringsn=100

strings/strings?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter918 µs678 µs723 µs3271
Compiled2.7 µs2 µs5.8 µs1000001
Node.js1 µs900 ns100 ns2891024
BunUnavailable: unavailable
Stringsn=1000

strings/strings?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.18 ms1.86 ms2.38 ms581
Compiled9.6 µs7.7 µs2.2 µs246128
Node.js8.9 µs8 µs800 ns264128
BunUnavailable: unavailable
Stringsn=10000

strings/strings?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter26 ms23.7 ms2.02 ms121
Compiled80.9 µs75.5 µs2.7 µs23216
Node.js96.4 µs80.8 µs15.2 µs19516
BunUnavailable: unavailable
Typed Arraysn=1000

typed-arrays/typed-arrays?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.77 ms5.14 ms2.33 ms451
Compiled3.7 µs2 µs7.9 µs815641
Node.js3.8 µs2.2 µs1.9 µs621128
BunUnavailable: unavailable
Typed Arraysn=100000

typed-arrays/typed-arrays?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter175 ms123 ms63 ms81
Compiled330 µs248 µs72.4 µs4562
Node.js392 µs330 µs219 µs1924
BunUnavailable: unavailable
Typed Arraysn=1000000

typed-arrays/typed-arrays?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.2 s1.16 s58.2 ms21
Compiled2.24 ms1.93 ms304 µs1341
Node.js2.79 ms2.57 ms285 µs1081
BunUnavailable: unavailable

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.

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

Raw normalized JSON · Pinned SharpTS 7c601010