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 Node0.9×190 comparable cases
Faster than Node97190 comparable cases
Within 5% of Node15190 comparable cases
Still behind78190 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 Destructuren=10000

array-destructure/array-destructure?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter14.4 ms5.24 ms11.3 ms211
Compiled120 µs55.9 µs111 µs6244
Node.js7.9 µs7.7 µs300 ns148256
BunUnavailable: unavailable
Array Destructuren=100000

array-destructure/array-destructure?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter53.5 ms53 ms462 µs81
Compiled623 µs559 µs274 µs2412
Node.js97.8 µs96.4 µs3.1 µs19216
BunUnavailable: unavailable
Array Includesn=1000

array-includes/array-includes?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.12 ms962 µs1.48 ms731
Compiled97.3 µs92.4 µs10.7 µs19316
Node.js70.4 µs65.7 µs4.4 µs26716
BunUnavailable: unavailable
Array Includesn=10000

array-includes/array-includes?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter8.34 ms6.02 ms3.48 ms361
Compiled939 µs914 µs36.7 µs1602
Node.js687 µs650 µs35.4 µs2192
BunUnavailable: unavailable
Array Methodsn=1000

array-methods/array-methods?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.9 ms1.1 ms1.78 ms771
Compiled11.8 µs9.1 µs4.2 µs199128
Node.js5.6 µs4.6 µs5.3 µs212256
BunUnavailable: unavailable
Array Methodsn=10000

array-methods/array-methods?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter11.5 ms8.4 ms2.21 ms271
Compiled101 µs90.1 µs8.4 µs18516
Node.js50.9 µs44.6 µs5.8 µs18532
BunUnavailable: unavailable
Array Methodsn=100000

array-methods/array-methods?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter125 ms111 ms8.76 ms81
Compiled1.07 ms849 µs224 µs2811
Node.js2.21 ms1.87 ms425 µs1361
BunUnavailable: unavailable
Array Shift Drainn=1000

array-queue/array-shift-drain?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter75.6 ms33.4 ms68.3 ms81
Compiled38.7 µs26.7 µs11 µs24332
Node.js46.2 µs43.1 µs2.5 µs20332
BunUnavailable: unavailable
Array Shift Drainn=10000

array-queue/array-shift-drain?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.9 s3.9 s0 ns11
Compiled79.5 ms77.8 ms3.87 ms81
Node.js493 µs450 µs36.4 µs1534
BunUnavailable: unavailable
Array Unshift Buildn=1000

array-queue/array-unshift-build?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter34 ms33.3 ms509 µs91
Compiled39.6 µs34.8 µs7.9 µs23732
Node.js53.3 µs49.6 µs3 µs17632
BunUnavailable: unavailable
Array Unshift Buildn=10000

array-queue/array-unshift-build?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.89 s3.89 s0 ns11
Compiled4.12 ms3.9 ms186 µs731
Node.js4.28 ms4.13 ms123 µs711
BunUnavailable: unavailable
Async Function Callsn=10

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter21.1 µs11.4 µs8.6 µs44532
Compiled100 ns100 ns0 ns19816384
Node.js400 ns300 ns0 ns2034096
BunUnavailable: unavailable
Async Function Callsn=100

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter115 µs103 µs14.4 µs16316
Compiled100 ns100 ns0 ns2958192
Node.js2.8 µs2.3 µs3.6 µs207512
BunUnavailable: unavailable
Async Function Callsn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.17 ms1.02 ms267 µs2571
Compiled500 ns500 ns0 ns1554096
Node.js23.3 µs20.8 µs1.9 µs20264
BunUnavailable: unavailable
Async Resolved Awaitn=10

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter68.4 µs40 µs131 µs10974
Compiled400 ns100 ns300 ns1814096
Node.js400 ns300 ns0 ns1954096
BunUnavailable: unavailable
Async Resolved Awaitn=100

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter228 µs96.1 µs255 µs8616
Compiled100 ns100 ns0 ns3048192
Node.js2.6 µs2.4 µs200 ns223512
BunUnavailable: unavailable
Async Resolved Awaitn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.52 ms1.01 ms4.89 ms1191
Compiled500 ns500 ns0 ns1554096
Node.js24.6 µs21.6 µs2.1 µs19164
BunUnavailable: unavailable
Promise Alln=10

async-promises/promise-all?n=10

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter52 µs31.1 µs61.5 µs36516
Compiled400 ns300 ns100 ns3862048
Node.js400 ns400 ns0 ns1764096
BunUnavailable: unavailable
Promise Alln=100

async-promises/promise-all?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter457 µs236 µs1.01 ms3292
Compiled800 ns700 ns900 ns1752048
Node.js2.8 µs2.6 µs300 ns208512
BunUnavailable: unavailable
Promise Alln=1000

async-promises/promise-all?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.38 ms2.32 ms4.11 ms691
Compiled4.5 µs4.2 µs400 ns259256
Node.js28.3 µs24.6 µs2.2 µs16664
BunUnavailable: unavailable
Promise Then Chainn=10

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter23.7 µs14.7 µs13.4 µs19864
Compiled800 ns400 ns400 ns3891024
Node.js400 ns300 ns0 ns2084096
BunUnavailable: unavailable
Promise Then Chainn=100

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter182 µs125 µs135 µs2068
Compiled2.3 µs2.1 µs200 ns258512
Node.js2.4 µs2.2 µs200 ns244512
BunUnavailable: unavailable
Promise Then Chainn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.99 ms1.23 ms2.63 ms1511
Compiled18.6 µs17.3 µs1.2 µs25264
Node.js25.6 µs22.6 µs2.2 µs18364
BunUnavailable: unavailable
Binary Treesn=12

binary-trees/binary-trees?n=12

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter16 ms12.9 ms6.58 ms211
Compiled52.1 µs46.3 µs4.9 µs18032
Node.js63 µs55.2 µs6.4 µs14932
BunUnavailable: unavailable
Binary Treesn=16

binary-trees/binary-trees?n=16

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter265 ms233 ms24.5 ms81
Compiled1.26 ms739 µs960 µs2391
Node.js1.15 ms928 µs180 µs2621
BunUnavailable: unavailable
Binary Treesn=8

binary-trees/binary-trees?n=8

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.67 ms643 µs1.38 ms1801
Compiled4.1 µs2.9 µs1.1 µs288256
Node.js3.8 µs3.5 µs200 ns156512
BunUnavailable: unavailable
Brainfuckn=50

brainfuck/brainfuck?n=50

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter97.3 ms50.9 ms77.9 ms81
Compiled215 µs206 µs18.9 µs1758
Node.js260 µs233 µs16 µs1458
BunUnavailable: unavailable
Brainfuckn=500

brainfuck/brainfuck?n=500

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter502 ms493 ms7.87 ms51
Compiled2.05 ms2 ms77.5 µs1471
Node.js2.32 ms1.88 ms140 µs1301
BunUnavailable: unavailable
Brainfuckn=5000

brainfuck/brainfuck?n=5000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.98 s4.98 s0 ns11
Compiled20.7 ms20.5 ms169 µs151
Node.js23.4 ms22.2 ms465 µs131
BunUnavailable: unavailable
Class Constructionn=1000

classes/class-construction?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.93 ms1.19 ms1.23 ms1571
Compiled700 ns400 ns700 ns883512
Node.js400 ns400 ns0 ns1844096
BunUnavailable: unavailable
Class Constructionn=10000

classes/class-construction?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter26.4 ms21.8 ms2.21 ms121
Compiled4 µs3.9 µs100 ns295256
Node.js4.9 µs4.8 µs200 ns239256
BunUnavailable: unavailable
Class Constructionn=100000

classes/class-construction?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter418 ms301 ms79.9 ms61
Compiled39.2 µs38.6 µs1.1 µs23932
Node.js39.6 µs38.6 µs1.3 µs23732
BunUnavailable: unavailable
Class Field Reusen=1000

classes/class-field-reuse?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.12 ms519 µs986 µs2681
Compiled1.6 µs500 ns6.5 µs591932
Node.js400 ns400 ns0 ns1644096
BunUnavailable: unavailable
Class Field Reusen=10000

classes/class-field-reuse?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.63 ms5.1 ms1.22 ms461
Compiled4.7 µs4.2 µs300 ns249256
Node.js5.9 µs5.8 µs100 ns201256
BunUnavailable: unavailable
Class Field Reusen=100000

classes/class-field-reuse?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter64.4 ms62.9 ms1.83 ms81
Compiled47.7 µs45 µs1.5 µs19732
Node.js53.7 µs51.8 µs1.5 µs17532
BunUnavailable: unavailable
Class Method Inheritance Basen=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter878 µs836 µs47.2 µs1712
Compiled900 ns500 ns2.1 µs2658128
Node.js400 ns400 ns0 ns1694096
BunUnavailable: unavailable
Class Method Inheritance Basen=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter10.4 ms8.47 ms1.01 ms291
Compiled4.8 µs4.6 µs700 ns242256
Node.js5.9 µs5.8 µs200 ns200256
BunUnavailable: unavailable
Class Method Inheritance Basen=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter101 ms98.6 ms1.12 ms81
Compiled48.2 µs45.2 µs1.3 µs19532
Node.js62.9 µs51.6 µs21.7 µs29916
BunUnavailable: unavailable
Class Method Inheritedn=1000

classes/class-method-inherited?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter893 µs778 µs63.3 µs1682
Compiled800 ns500 ns1.7 µs2839128
Node.js1 µs1 µs0 ns2841024
BunUnavailable: unavailable
Class Method Inheritedn=10000

classes/class-method-inherited?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter10.6 ms8.63 ms959 µs291
Compiled4.8 µs4.6 µs200 ns246256
Node.js10.9 µs10.4 µs300 ns216128
BunUnavailable: unavailable
Class Method Inheritedn=100000

classes/class-method-inherited?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter102 ms101 ms759 µs81
Compiled48 µs46 µs1.4 µs19632
Node.js114 µs107 µs2.9 µs16616
BunUnavailable: unavailable
Class Method Overriden=1000

classes/class-method-override?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter900 µs848 µs54.8 µs1672
Compiled900 ns500 ns2.2 µs2482128
Node.js1 µs1 µs0 ns2821024
BunUnavailable: unavailable
Class Method Overriden=10000

classes/class-method-override?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter10.7 ms8.72 ms883 µs281
Compiled4.8 µs4.6 µs200 ns243256
Node.js11 µs10.4 µs300 ns214128
BunUnavailable: unavailable
Class Method Overriden=100000

classes/class-method-override?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter102 ms101 ms1.42 ms81
Compiled48.2 µs45.6 µs1.1 µs19532
Node.js117 µs107 µs32.7 µs16116
BunUnavailable: unavailable
Class Method Reusen=1000

classes/class-method-reuse?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter913 µs839 µs56.6 µs1652
Compiled600 ns500 ns1.2 µs3694128
Node.js400 ns400 ns200 ns1634096
BunUnavailable: unavailable
Class Method Reusen=10000

classes/class-method-reuse?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter10.5 ms8.54 ms1.05 ms291
Compiled4.7 µs4.3 µs200 ns252256
Node.js5.9 µs5.8 µs200 ns199256
BunUnavailable: unavailable
Class Method Reusen=100000

classes/class-method-reuse?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter101 ms99.3 ms1.54 ms81
Compiled48 µs45.5 µs1.5 µs19632
Node.js72 µs51.4 µs27.6 µs26116
BunUnavailable: unavailable
Class Method Supern=1000

classes/class-method-super?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.73 ms1.44 ms1.84 ms1741
Compiled800 ns500 ns1.8 µs2965128
Node.js1 µs1 µs0 ns2861024
BunUnavailable: unavailable
Class Method Supern=10000

classes/class-method-super?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter18.4 ms17.7 ms495 µs171
Compiled4.6 µs4.1 µs300 ns254256
Node.js10.7 µs10.4 µs300 ns219128
BunUnavailable: unavailable
Class Method Supern=100000

classes/class-method-super?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter188 ms181 ms10.6 ms81
Compiled47.6 µs45.1 µs1.6 µs19732
Node.js113 µs108 µs2.9 µs16616
BunUnavailable: unavailable
Closuresn=1000

closures/closures?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.35 ms565 µs1.79 ms2231
Compiled3.2 µs1.5 µs2.1 µs365256
Node.js7.9 µs7.2 µs800 ns149256
BunUnavailable: unavailable
Closuresn=10000

closures/closures?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.94 ms5.64 ms213 µs511
Compiled16 µs14.5 µs5.7 µs147128
Node.js74 µs69 µs7.2 µs25416
BunUnavailable: unavailable
Closuresn=100000

closures/closures?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter59.5 ms58.6 ms1.27 ms81
Compiled153 µs144 µs8.8 µs2468
Node.js747 µs604 µs708 µs2012
BunUnavailable: unavailable
Count Primesn=1000

count-primes/count-primes?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.05 ms2.71 ms2.07 ms501
Compiled2.6 µs1.3 µs1.4 µs454256
Node.js3.1 µs2.9 µs200 ns191512
BunUnavailable: unavailable
Count Primesn=10000

count-primes/count-primes?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter18.1 ms15 ms3.34 ms171
Compiled13.6 µs12.9 µs600 ns172128
Node.js36.3 µs34.4 µs2.5 µs25932
BunUnavailable: unavailable
Count Primesn=100000

count-primes/count-primes?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter204 ms194 ms9.44 ms81
Compiled243 µs223 µs20.5 µs1558
Node.js891 µs727 µs250 µs3371
BunUnavailable: unavailable
Custom Iterator Dynamic Controln=10000

custom-iterator-dynamic-control/custom-iterator-dynamic-control?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter38.7 ms36.3 ms5.05 ms81
Compiled5.73 ms4.74 ms1.38 ms531
Node.js28.1 µs25.5 µs3.1 µs16764
BunUnavailable: unavailable
Custom Iterator Dynamic Controln=100000

custom-iterator-dynamic-control/custom-iterator-dynamic-control?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter106 ms84.1 ms37.7 ms81
Compiled11.7 ms11.4 ms239 µs261
Node.js270 µs243 µs34.3 µs2784
BunUnavailable: unavailable
Custom Iteratorn=10000

custom-iterator/custom-iterator?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter39.4 ms36.8 ms6.01 ms81
Compiled35.1 µs33.2 µs3.4 µs26732
Node.js27.9 µs25.4 µs5.7 µs16864
BunUnavailable: unavailable
Custom Iteratorn=100000

custom-iterator/custom-iterator?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter113 ms85.8 ms61 ms81
Compiled187 µs179 µs27.7 µs2018
Node.js262 µs245 µs23.8 µs2874
BunUnavailable: unavailable
Date Numericn=100

date-numeric/date-numeric?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter134 µs50.1 µs152 µs5594
Compiled1.6 µs400 ns1.9 µs1821024
Node.js1.1 µs1 µs100 ns2571024
BunUnavailable: unavailable
Date Numericn=10000

date-numeric/date-numeric?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.04 ms4.78 ms189 µs601
Compiled43 µs41.9 µs1.3 µs21932
Node.js106 µs96.8 µs6.5 µs17816
BunUnavailable: unavailable
Date Numericn=100000

date-numeric/date-numeric?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter50.1 ms49.1 ms909 µs81
Compiled432 µs420 µs17.2 µs1744
Node.js1.14 ms980 µs164 µs2641
BunUnavailable: unavailable
Error Construct No Stackn=100000

exceptions/error-construct-no-stack?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter29.1 ms26.8 ms4.41 ms111
Compiled163 µs145 µs93.3 µs2318
Node.js337 µs312 µs24.7 µs2234
BunUnavailable: unavailable
Error First Stack Readn=100000

exceptions/error-first-stack-read?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter26.9 ms26.3 ms358 µs121
Compiled185 µs146 µs214 µs2038
Node.js796 µs750 µs45.9 µs1892
BunUnavailable: unavailable
Error Repeated Stack Readn=100000

exceptions/error-repeated-stack-read?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter27.1 ms26.3 ms469 µs121
Compiled194 µs147 µs207 µs1948
Node.js802 µs748 µs56.7 µs1882
BunUnavailable: unavailable
Throw Branch Controln=100000

exceptions/throw-branch-control?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter68.3 ms36.8 ms57.1 ms81
Compiled144 µs136 µs8.8 µs2618
Node.js43.9 µs39.3 µs7.9 µs21432
BunUnavailable: unavailable
Throw Errorn=100000

exceptions/throw-error?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter37.7 ms37 ms860 µs81
Compiled191 µs164 µs74 µs1978
Node.js408 µs348 µs33.6 µs1844
BunUnavailable: unavailable
Throw Primitiven=100000

exceptions/throw-primitive?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter37.5 ms36.8 ms798 µs81
Compiled163 µs155 µs13.9 µs2308
Node.js69.4 µs57.2 µs12 µs5418
BunUnavailable: unavailable
Throw Try Catch No Thrown=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter41.7 ms40.9 ms523 µs81
Compiled142 µs136 µs8.7 µs2658
Node.js44.3 µs39.3 µs8.7 µs42416
BunUnavailable: unavailable
Factorialn=100

factorial/factorial?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter52.6 µs23.7 µs50.3 µs7138
Compiled200 ns100 ns200 ns6002048
Node.js100 ns0 ns0 ns35816384
BunUnavailable: unavailable
Factorialn=1000

factorial/factorial?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter267 µs237 µs23.2 µs2814
Compiled900 ns800 ns300 ns1692048
Node.js800 ns700 ns0 ns1902048
BunUnavailable: unavailable
Factorialn=10000

factorial/factorial?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.49 ms2.36 ms113 µs1211
Compiled7.9 µs7.8 µs400 ns296128
Node.js7.8 µs7.7 µs300 ns300128
BunUnavailable: unavailable
Fibonaccin=10

fibonacci/fibonacci?n=10

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter130 µs53.3 µs129 µs23161
Compiled300 ns200 ns200 ns4202048
Node.js300 ns300 ns0 ns2144096
BunUnavailable: unavailable
Fibonaccin=20

fibonacci/fibonacci?n=20

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.84 ms6.48 ms207 µs441
Compiled19.3 µs18.7 µs1.2 µs24464
Node.js43.1 µs41.2 µs4.3 µs21832
BunUnavailable: unavailable
Fibonaccin=30

fibonacci/fibonacci?n=30

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter847 ms837 ms17.3 ms31
Compiled2.35 ms2.29 ms91 µs1281
Node.js5.18 ms5.05 ms136 µs581
BunUnavailable: unavailable
Fibonaccin=35

fibonacci/fibonacci?n=35

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter9.39 s9.39 s0 ns11
Compiled26.1 ms25.7 ms251 µs121
Node.js57.8 ms57.4 ms299 µs81
BunUnavailable: unavailable
Accumulaten=1000

int-arrays/accumulate?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.87 ms2.2 ms558 µs1051
Compiled4.1 µs3.3 µs1.1 µs284256
Node.js6.1 µs4.6 µs600 ns191256
BunUnavailable: unavailable
Accumulaten=100000

int-arrays/accumulate?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter235 ms230 ms8.97 ms81
Compiled487 µs461 µs26.8 µs1544
Node.js667 µs571 µs236 µs2252
BunUnavailable: unavailable
Accumulaten=1000000

int-arrays/accumulate?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.38 s2.38 s0 ns11
Compiled3.67 ms3.25 ms335 µs821
Node.js4.78 ms4.53 ms253 µs631
BunUnavailable: unavailable
Int32 Kerneln=1000

int-arrays/int32-kernel?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.68 ms990 µs1.8 ms1121
Compiled3.3 µs1.9 µs1.4 µs361256
Node.js3.1 µs2.6 µs200 ns190512
BunUnavailable: unavailable
Int32 Kerneln=100000

int-arrays/int32-kernel?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter98.7 ms97.5 ms1.4 ms81
Compiled261 µs208 µs45.7 µs2884
Node.js301 µs260 µs90.7 µs2504
BunUnavailable: unavailable
Int32 Kerneln=1000000

int-arrays/int32-kernel?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter988 ms978 ms14.8 ms31
Compiled1.98 ms1.79 ms152 µs1521
Node.js2.41 ms2.27 ms185 µs1251
BunUnavailable: unavailable
Jsonn=100

json/json?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter994 µs694 µs315 µs1522
Compiled12 µs7.2 µs5.6 µs195128
Node.js23.5 µs22.3 µs1.1 µs20064
BunUnavailable: unavailable
Jsonn=1000

json/json?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.19 ms1.84 ms3.64 ms721
Compiled80 µs67.3 µs10.8 µs23516
Node.js223 µs205 µs13.8 µs1698
BunUnavailable: unavailable
Jsonn=10000

json/json?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter36.1 ms27.4 ms9.94 ms91
Compiled3.92 ms749 µs2.82 ms392
Node.js2.46 ms2.17 ms259 µs1221
BunUnavailable: unavailable
Flattened Rest Controln=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter335 µs288 µs397 µs2244
Compiled2.2 µs1.5 µs1.1 µs545256
Node.js400 ns400 ns0 ns1824096
BunUnavailable: unavailable
Flattened Rest Controln=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.09 ms2.84 ms125 µs981
Compiled15.7 µs15.4 µs500 ns150128
Node.js5.9 µs5.8 µs200 ns199256
BunUnavailable: unavailable
Flattened Rest Controln=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter30.9 ms30.4 ms303 µs101
Compiled158 µs154 µs8.3 µs2388
Node.js161 µs154 µs9.9 µs2348
BunUnavailable: unavailable
Format Fixedn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter766 µs682 µs63.5 µs1962
Compiled103 µs39.3 µs81.4 µs3658
Node.js80.5 µs75.7 µs3.9 µs23416
BunUnavailable: unavailable
Format Fixedn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.33 ms6.9 ms184 µs411
Compiled428 µs401 µs23.6 µs1764
Node.js816 µs778 µs36.5 µs1842
BunUnavailable: unavailable
Format Fixedn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter74.9 ms73.4 ms1.13 ms81
Compiled4.33 ms4.12 ms163 µs701
Node.js8.62 ms8.27 ms184 µs351
BunUnavailable: unavailable
Generator Rangen=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.36 ms1.21 ms99.5 µs2221
Compiled3.1 µs1.9 µs4.7 µs152264
Node.js8.6 µs8 µs500 ns272128
BunUnavailable: unavailable
Generator Rangen=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter11.7 ms10.8 ms459 µs261
Compiled18.9 µs18.4 µs1.1 µs24964
Node.js80.1 µs75.2 µs4.2 µs23516
BunUnavailable: unavailable
Generator Rangen=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter121 ms115 ms8.12 ms81
Compiled189 µs183 µs23.2 µs1998
Node.js846 µs763 µs48.7 µs1782
BunUnavailable: unavailable
Numeric Assignment Controln=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter243 µs227 µs14 µs1558
Compiled500 ns400 ns600 ns1098512
Node.js300 ns300 ns0 ns2114096
BunUnavailable: unavailable
Numeric Assignment Controln=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.39 ms2.25 ms105 µs1261
Compiled4 µs3.9 µs200 ns296256
Node.js4.9 µs4.8 µs200 ns238256
BunUnavailable: unavailable
Numeric Assignment Controln=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter24.1 ms23.7 ms632 µs131
Compiled39.4 µs38.6 µs1.6 µs23932
Node.js41 µs38.7 µs9.7 µs22932
BunUnavailable: unavailable
Numeric Compoundn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter738 µs313 µs632 µs4071
Compiled900 ns400 ns1.1 µs672512
Node.js300 ns300 ns0 ns2214096
BunUnavailable: unavailable
Numeric Compoundn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.29 ms3.16 ms70.1 µs921
Compiled3.9 µs3.9 µs200 ns297256
Node.js5 µs4.8 µs200 ns236256
BunUnavailable: unavailable
Numeric Compoundn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter32.4 ms31.6 ms360 µs101
Compiled41.4 µs38.5 µs30.7 µs22932
Node.js40 µs38.6 µs1.8 µs23532
BunUnavailable: unavailable
Parse Integersn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter680 µs576 µs140 µs2212
Compiled600 ns400 ns700 ns961512
Node.js4.5 µs4.4 µs300 ns260256
BunUnavailable: unavailable
Parse Integersn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.32 ms5.85 ms183 µs481
Compiled3.9 µs3.9 µs100 ns149512
Node.js45.3 µs43.6 µs2.5 µs20732
BunUnavailable: unavailable
Parse Integersn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter63.2 ms62.2 ms626 µs81
Compiled39.3 µs38.6 µs1.5 µs23932
Node.js1.2 ms1.07 ms155 µs2511
BunUnavailable: unavailable
Stable Numeric Restn=1000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter881 µs830 µs49.3 µs1712
Compiled900 ns600 ns900 ns665512
Node.js400 ns400 ns0 ns1834096
BunUnavailable: unavailable
Stable Numeric Restn=10000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter8.77 ms8.44 ms227 µs351
Compiled5.5 µs5.4 µs200 ns212256
Node.js5.9 µs5.8 µs200 ns199256
BunUnavailable: unavailable
Stable Numeric Restn=100000

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

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter87.6 ms87.1 ms684 µs81
Compiled55.1 µs53.9 µs2.1 µs17132
Node.js50.3 µs48.3 µs2.1 µs18732
BunUnavailable: unavailable
Map Iterationn=100

map-set/map-iteration?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter106 µs65.2 µs89.7 µs14212
Compiled700 ns400 ns500 ns846512
Node.js1.7 µs1.6 µs100 ns1731024
BunUnavailable: unavailable
Map Iterationn=1000

map-set/map-iteration?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter715 µs636 µs109 µs2102
Compiled4.1 µs3.8 µs200 ns144512
Node.js15.8 µs13.3 µs14.2 µs149128
BunUnavailable: unavailable
Map Iterationn=10000

map-set/map-iteration?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter11 ms8.22 ms4.14 ms281
Compiled99.1 µs86.8 µs13.3 µs19016
Node.js435 µs374 µs78.3 µs1734
BunUnavailable: unavailable
Map Operationsn=100

map-set/map-operations?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter945 µs699 µs754 µs1592
Compiled3.3 µs1.4 µs3.6 µs702128
Node.js1.9 µs1.8 µs100 ns1551024
BunUnavailable: unavailable
Map Operationsn=1000

map-set/map-operations?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.45 ms1.3 ms186 µs2071
Compiled14.6 µs13.6 µs1.1 µs161128
Node.js17.9 µs15.9 µs2 µs26364
BunUnavailable: unavailable
Map Operationsn=10000

map-set/map-operations?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter16.9 ms15.5 ms635 µs181
Compiled303 µs158 µs111 µs1258
Node.js566 µs458 µs784 µs5301
BunUnavailable: unavailable
Set Iterationn=100

map-set/set-iteration?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter62.6 µs55.2 µs6.5 µs15032
Compiled2.6 µs1.8 µs1.3 µs449256
Node.js1.2 µs1.2 µs100 ns2361024
BunUnavailable: unavailable
Set Iterationn=1000

map-set/set-iteration?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter575 µs511 µs91.2 µs2612
Compiled19.4 µs16.4 µs21.3 µs24264
Node.js10.8 µs9.6 µs900 ns217128
BunUnavailable: unavailable
Set Iterationn=10000

map-set/set-iteration?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter8.62 ms5.9 ms4.02 ms351
Compiled314 µs189 µs84.5 µs2394
Node.js343 µs296 µs83 µs2194
BunUnavailable: unavailable
Set Operationsn=100

map-set/set-operations?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter121 µs111 µs10.2 µs15516
Compiled2.9 µs1.7 µs2.1 µs399256
Node.js1.7 µs1.6 µs100 ns1781024
BunUnavailable: unavailable
Set Operationsn=1000

map-set/set-operations?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.17 ms1.06 ms162 µs2581
Compiled19.7 µs17.1 µs2 µs23864
Node.js17.7 µs15.2 µs2 µs26564
BunUnavailable: unavailable
Set Operationsn=10000

map-set/set-operations?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter14 ms11.5 ms4.33 ms221
Compiled425 µs222 µs478 µs7061
Node.js482 µs432 µs79.1 µs1564
BunUnavailable: unavailable
Math Max Onen=100Unavailable

math-min-max/math-max-one?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter35.3 µs32.3 µs2.8 µs26632
Compiled100 ns100 ns100 ns4238192
Node.js0 ns0 ns0 ns20632768
BunUnavailable: unavailable
Math Max Onen=10000

math-min-max/math-max-one?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.28 ms3.12 ms149 µs921
Compiled3.9 µs3.9 µs100 ns149512
Node.js4.9 µs4.8 µs100 ns239256
BunUnavailable: unavailable
Math Max Onen=100000

math-min-max/math-max-one?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter33 ms32.4 ms512 µs101
Compiled39.2 µs38.6 µs1.2 µs24032
Node.js49 µs48.2 µs1.6 µs19232
BunUnavailable: unavailable
Math Max Severaln=100Unavailable

math-min-max/math-max-several?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter44 µs40.7 µs2.6 µs21332
Compiled400 ns300 ns200 ns4062048
Node.js0 ns0 ns0 ns21032768
BunUnavailable: unavailable
Math Max Severaln=10000

math-min-max/math-max-several?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.08 ms3.9 ms114 µs741
Compiled24.9 µs24.4 µs800 ns18964
Node.js4.9 µs4.8 µs200 ns238256
BunUnavailable: unavailable
Math Max Severaln=100000

math-min-max/math-max-several?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter41.1 ms40.4 ms733 µs81
Compiled248 µs244 µs9 µs3034
Node.js49.1 µs48.2 µs1.5 µs19232
BunUnavailable: unavailable
Math Max Spreadn=100

math-min-max/math-max-spread?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter51.3 µs46.3 µs4.4 µs18332
Compiled6.2 µs4.1 µs3.4 µs377128
Node.js1.4 µs1.4 µs100 ns2051024
BunUnavailable: unavailable
Math Max Spreadn=10000

math-min-max/math-max-spread?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.76 ms4.51 ms203 µs631
Compiled451 µs417 µs22.1 µs1674
Node.js145 µs135 µs8.3 µs2608
BunUnavailable: unavailable
Math Max Spreadn=100000

math-min-max/math-max-spread?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter51.2 ms47.3 ms9.54 ms81
Compiled4.5 ms4.27 ms212 µs671
Node.js1.46 ms1.35 ms71.1 µs2061
BunUnavailable: unavailable
Math Min Dynamicn=100Unavailable

math-min-max/math-min-dynamic?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter37.9 µs35.8 µs2.8 µs24832
Compiled1.5 µs900 ns1.9 µs1530128
Node.js0 ns0 ns0 ns21032768
BunUnavailable: unavailable
Math Min Dynamicn=10000

math-min-max/math-min-dynamic?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.65 ms3.46 ms158 µs831
Compiled97.1 µs90.1 µs5.3 µs19416
Node.js4.9 µs4.8 µs200 ns239256
BunUnavailable: unavailable
Math Min Dynamicn=100000

math-min-max/math-min-dynamic?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter36.5 ms35.8 ms472 µs91
Compiled977 µs895 µs47.5 µs1542
Node.js51.3 µs48.2 µs14.7 µs18332
BunUnavailable: unavailable
Math Min Twon=100

math-min-max/math-min-two?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter42.4 µs40.3 µs2.6 µs22132
Compiled300 ns200 ns100 ns2714096
Node.js100 ns100 ns0 ns2968192
BunUnavailable: unavailable
Math Min Twon=10000

math-min-max/math-min-two?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter4.16 ms3.96 ms125 µs731
Compiled20.3 µs19.1 µs7.6 µs23164
Node.js15.2 µs14.9 µs500 ns154128
BunUnavailable: unavailable
Math Min Twon=100000

math-min-max/math-min-two?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter41.4 ms41 ms287 µs81
Compiled196 µs191 µs7.8 µs1928
Node.js152 µs149 µs5.3 µs2478
BunUnavailable: unavailable
Math Min Zeron=100Unavailable

math-min-max/math-min-zero?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter72.9 µs27.9 µs90.8 µs5158
Compiled100 ns100 ns100 ns6394096
Node.js0 ns0 ns0 ns28032768
BunUnavailable: unavailable
Math Min Zeron=10000

math-min-max/math-min-zero?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.76 ms2.61 ms137 µs1091
Compiled3.5 µs3 µs200 ns169512
Node.js3.9 µs3.9 µs200 ns297256
BunUnavailable: unavailable
Math Min Zeron=100000

math-min-max/math-min-zero?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter27.2 ms26.9 ms333 µs121
Compiled33.1 µs29.4 µs2.9 µs28432
Node.js39.2 µs38.5 µs1.3 µs23932
BunUnavailable: unavailable
Num Pushn=1000

num-arrays/num-push?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.16 ms728 µs775 µs2581
Compiled4.6 µs3 µs4.6 µs100964
Node.js2.6 µs2.2 µs200 ns230512
BunUnavailable: unavailable
Num Pushn=100000

num-arrays/num-push?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter95.1 ms90.5 ms11 ms81
Compiled757 µs709 µs48 µs1992
Node.js730 µs586 µs162 µs2062
BunUnavailable: unavailable
Num Pushn=1000000

num-arrays/num-push?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter943 ms936 ms6.36 ms31
Compiled5.05 ms3.69 ms1.37 ms601
Node.js9.77 ms8.2 ms1.74 ms311
BunUnavailable: unavailable
Num Writen=1000

num-arrays/num-write?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.64 ms744 µs1.29 ms1141
Compiled26.6 µs23.6 µs4.7 µs17664
Node.js2.6 µs2.4 µs200 ns223512
BunUnavailable: unavailable
Num Writen=100000

num-arrays/num-write?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter80.4 ms73.4 ms11.9 ms81
Compiled805 µs747 µs55.3 µs1872
Node.js738 µs594 µs166 µs2042
BunUnavailable: unavailable
Num Writen=1000000

num-arrays/num-write?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter818 ms780 ms49.4 ms31
Compiled5.41 ms4.28 ms1.43 ms561
Node.js9.54 ms8.33 ms1.55 ms321
BunUnavailable: unavailable
Object Destructuren=10000

object-destructure/object-destructure?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter22 ms9.92 ms5.9 ms141
Compiled82.9 µs42.4 µs123 µs9054
Node.js3.1 µs2.9 µs100 ns187512
BunUnavailable: unavailable
Object Destructuren=100000

object-destructure/object-destructure?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter50.6 ms50.1 ms516 µs81
Compiled455 µs425 µs14.6 µs1664
Node.js48.9 µs48.2 µs1.3 µs19232
BunUnavailable: unavailable
Object Keys Accessorn=10000

object-keys/object-keys-accessor?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.02 ms6.61 ms287 µs431
Compiled798 µs754 µs41.4 µs1892
Node.js684 µs642 µs31.4 µs2202
BunUnavailable: unavailable
Object Keys Accessorn=100000

object-keys/object-keys-accessor?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter95.7 ms92.8 ms2.23 ms81
Compiled6.51 ms6.24 ms165 µs471
Node.js6.81 ms6.59 ms147 µs451
BunUnavailable: unavailable
Object Keys Exactn=10000

object-keys/object-keys-exact?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter38.1 ms24.3 ms6.25 ms81
Compiled1.55 ms373 µs426 µs1941
Node.js58.4 µs55.5 µs3.1 µs16132
BunUnavailable: unavailable
Object Keys Exactn=100000

object-keys/object-keys-exact?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter70.4 ms69.2 ms714 µs81
Compiled3.43 ms3.23 ms119 µs881
Node.js494 µs462 µs32 µs3042
BunUnavailable: unavailable
Object Keys Mutatedn=10000

object-keys/object-keys-mutated?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.79 ms6.82 ms3.63 ms391
Compiled343 µs277 µs54.4 µs2194
Node.js46.2 µs43.4 µs2.9 µs20332
BunUnavailable: unavailable
Object Keys Mutatedn=100000

object-keys/object-keys-mutated?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter98.3 ms95.5 ms2.24 ms81
Compiled3.24 ms2.73 ms2.75 ms931
Node.js457 µs434 µs21 µs1654
BunUnavailable: unavailable
Object Keys Numericn=10000

object-keys/object-keys-numeric?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter19.1 ms14.4 ms4.99 ms161
Compiled1.78 ms1.29 ms684 µs1691
Node.js1.75 ms1.65 ms98.4 µs1721
BunUnavailable: unavailable
Object Keys Numericn=100000

object-keys/object-keys-numeric?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter272 ms180 ms76.6 ms81
Compiled13.8 ms13.4 ms263 µs221
Node.js17.5 ms17.2 ms284 µs181
BunUnavailable: unavailable
Object Keys Proxyn=10000

object-keys/object-keys-proxy?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter39.1 ms29.7 ms8.06 ms81
Compiled32.2 ms31.7 ms374 µs101
Node.js8.29 ms8 ms176 µs371
BunUnavailable: unavailable
Object Keys Proxyn=100000

object-keys/object-keys-proxy?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter449 ms441 ms11.2 ms51
Compiled157 ms142 ms40.7 ms81
Node.js82.4 ms81.9 ms315 µs81
BunUnavailable: unavailable
Object Spread Escapen=10000

object-spread/object-spread-escape?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter17.8 ms16.5 ms2.11 ms171
Compiled15.2 ms5.9 ms10.6 ms201
Node.js93 µs85 µs6.7 µs20216
BunUnavailable: unavailable
Object Spread Escapen=100000

object-spread/object-spread-escape?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter168 ms168 ms555 µs81
Compiled123 ms84.6 ms21.8 ms81
Node.js935 µs892 µs45.2 µs1612
BunUnavailable: unavailable
Object Spread Onen=10000

object-spread/object-spread-one?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter47.5 ms19.8 ms19.7 ms81
Compiled9.8 µs7.7 µs3.1 µs240128
Node.js103 µs94.7 µs7.1 µs18216
BunUnavailable: unavailable
Object Spread Onen=100000

object-spread/object-spread-one?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter92.8 ms89.5 ms8.33 ms81
Compiled78.5 µs77.1 µs3.1 µs23916
Node.js884 µs838 µs47.4 µs1702
BunUnavailable: unavailable
Object Spread Overwriten=10000

object-spread/object-spread-overwrite?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter16.1 ms14.8 ms2.2 ms191
Compiled17 µs15.4 µs1.9 µs27664
Node.js354 µs326 µs20.5 µs2134
BunUnavailable: unavailable
Object Spread Overwriten=100000

object-spread/object-spread-overwrite?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter153 ms151 ms1.44 ms81
Compiled157 µs154 µs6 µs2398
Node.js3.53 ms3.37 ms185 µs851
BunUnavailable: unavailable
Objectsn=1000

objects/objects?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.88 ms516 µs908 µs1601
Compiled1.7 µs800 ns1.4 µs349512
Node.js600 ns600 ns0 ns2432048
BunUnavailable: unavailable
Objectsn=10000

objects/objects?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter5.16 ms4.85 ms165 µs591
Compiled8 µs7.8 µs300 ns147256
Node.js8 µs7.7 µs400 ns148256
BunUnavailable: unavailable
Objectsn=100000

objects/objects?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter51.4 ms50.8 ms584 µs81
Compiled79.3 µs77.1 µs3.6 µs23716
Node.js85.4 µs77.1 µs92.2 µs22016
BunUnavailable: unavailable
Regex Replacen=100

regex-replace/regex-replace?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter899 µs454 µs957 µs1672
Compiled17.6 µs8.5 µs12.8 µs26664
Node.js10.8 µs10 µs700 ns218128
BunUnavailable: unavailable
Regex Replacen=10000

regex-replace/regex-replace?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter27.9 ms21.9 ms3.19 ms111
Compiled894 µs841 µs50.6 µs1682
Node.js1.07 ms1 ms75.7 µs2801
BunUnavailable: unavailable
Regex Replacen=100000

regex-replace/regex-replace?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter415 ms346 ms70.7 ms51
Compiled8.87 ms8.56 ms173 µs341
Node.js10.5 ms10.1 ms335 µs291
BunUnavailable: unavailable
Regex Validatorn=100

regex-validator/regex-validator?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter481 µs164 µs362 µs3122
Compiled4.4 µs2.5 µs2.5 µs269256
Node.js1.5 µs1.4 µs100 ns1941024
BunUnavailable: unavailable
Regex Validatorn=10000

regex-validator/regex-validator?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter23.8 ms16.1 ms7.34 ms131
Compiled258 µs242 µs17 µs2914
Node.js155 µs141 µs7.4 µs2428
BunUnavailable: unavailable
Regex Validatorn=100000

regex-validator/regex-validator?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter364 ms214 ms98.6 ms61
Compiled2.57 ms2.44 ms103 µs1171
Node.js1.54 ms1.45 ms74.5 µs1951
BunUnavailable: unavailable
Regexn=100

regex/regex?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter104 µs39.5 µs108 µs7224
Compiled98.8 µs49.7 µs113 µs30371
Node.js18.1 µs16.5 µs1.1 µs25964
BunUnavailable: unavailable
Regexn=1000

regex/regex?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter310 µs270 µs32.6 µs2424
Compiled340 µs267 µs53.1 µs2214
Node.js197 µs177 µs18.2 µs1918
BunUnavailable: unavailable
Regexn=10000

regex/regex?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter3.21 ms2.65 ms1.67 ms941
Compiled2.81 ms2.54 ms247 µs1071
Node.js2.57 ms1.88 ms785 µs1171
BunUnavailable: unavailable
Sortn=100

sort/sort?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter298 µs83 µs168 µs2524
Compiled56.8 µs52 µs10 µs16632
Node.js9.2 µs8.6 µs700 ns254128
BunUnavailable: unavailable
Sortn=1000

sort/sort?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter707 µs566 µs83.5 µs2132
Compiled246 µs155 µs160 µs3054
Node.js237 µs205 µs122 µs1598
BunUnavailable: unavailable
Sortn=10000

sort/sort?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter15.3 ms9.66 ms5.49 ms201
Compiled2.32 ms2.09 ms399 µs1301
Node.js3 ms2.82 ms126 µs1011
BunUnavailable: unavailable
String Includesn=100

string-intrinsics/string-includes?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter67.9 µs62.1 µs5.4 µs27616
Compiled1.5 µs1.2 µs300 ns389512
Node.js1.7 µs1.6 µs100 ns355512
BunUnavailable: unavailable
String Includesn=10000

string-intrinsics/string-includes?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.45 ms6.2 ms162 µs471
Compiled127 µs117 µs5.1 µs14916
Node.js161 µs157 µs5.7 µs2348
BunUnavailable: unavailable
String Includesn=100000

string-intrinsics/string-includes?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter64.7 ms64 ms490 µs81
Compiled1.28 ms1.19 ms74.3 µs2361
Node.js1.62 ms1.58 ms80.6 µs1861
BunUnavailable: unavailable
String Indexofn=100

string-intrinsics/string-indexof?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter205 µs64 µs191 µs3664
Compiled2.3 µs1.2 µs2.2 µs499256
Node.js1.7 µs1.6 µs100 ns1771024
BunUnavailable: unavailable
String Indexofn=10000

string-intrinsics/string-indexof?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter6.47 ms6.22 ms207 µs471
Compiled125 µs117 µs5.6 µs15016
Node.js162 µs159 µs4.6 µs2328
BunUnavailable: unavailable
String Indexofn=100000

string-intrinsics/string-indexof?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter64.6 ms63.6 ms859 µs81
Compiled1.24 ms1.15 ms67.9 µs2421
Node.js1.61 ms1.58 ms58 µs1861
BunUnavailable: unavailable
String Slicen=100

string-intrinsics/string-slice?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter74.5 µs70.1 µs5.3 µs25216
Compiled2.5 µs2 µs600 ns236512
Node.js300 ns300 ns0 ns2374096
BunUnavailable: unavailable
String Slicen=10000

string-intrinsics/string-slice?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.24 ms6.96 ms195 µs421
Compiled207 µs193 µs11.3 µs1828
Node.js41.4 µs38.8 µs2.2 µs22732
BunUnavailable: unavailable
String Slicen=100000

string-intrinsics/string-slice?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter71.9 ms71.2 ms753 µs81
Compiled2.05 ms1.95 ms63.4 µs1471
Node.js416 µs389 µs25.5 µs1814
BunUnavailable: unavailable
String Substringn=100

string-intrinsics/string-substring?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter73.7 µs70.2 µs4.4 µs25516
Compiled2.2 µs1.8 µs400 ns265512
Node.js300 ns300 ns0 ns2204096
BunUnavailable: unavailable
String Substringn=10000

string-intrinsics/string-substring?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter7.23 ms6.98 ms133 µs421
Compiled195 µs180 µs11.3 µs1928
Node.js51.3 µs47.7 µs2.7 µs18332
BunUnavailable: unavailable
String Substringn=100000

string-intrinsics/string-substring?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter72.6 ms72.1 ms429 µs81
Compiled1.96 ms1.81 ms100 µs1541
Node.js523 µs488 µs34.8 µs2872
BunUnavailable: unavailable
Stringsn=100

strings/strings?n=100

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter330 µs124 µs298 µs4542
Compiled1 µs500 ns600 ns2871024
Node.js700 ns700 ns0 ns2022048
BunUnavailable: unavailable
Stringsn=1000

strings/strings?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter1.37 ms1.26 ms112 µs2201
Compiled4.9 µs4.3 µs5.1 µs250256
Node.js6.7 µs6 µs700 ns351128
BunUnavailable: unavailable
Stringsn=10000

strings/strings?n=10000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter20.9 ms20.4 ms264 µs151
Compiled45.2 µs42.6 µs2.9 µs20832
Node.js77.2 µs57.4 µs10.4 µs24316
BunUnavailable: unavailable
Typed Arraysn=1000

typed-arrays/typed-arrays?n=1000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter2.62 ms966 µs1.89 ms1151
Compiled3.5 µs2 µs1.5 µs337256
Node.js4 µs2.6 µs900 ns290256
BunUnavailable: unavailable
Typed Arraysn=100000

typed-arrays/typed-arrays?n=100000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter97.7 ms96.8 ms711 µs81
Compiled336 µs314 µs23.9 µs2244
Node.js411 µs336 µs293 µs7301
BunUnavailable: unavailable
Typed Arraysn=1000000

typed-arrays/typed-arrays?n=1000000

Raw measurements

MeanMinimumStandard deviationSamplesInner iterations
Interpreter997 ms982 ms13.5 ms31
Compiled2.18 ms1.89 ms272 µs1381
Node.js3.2 ms2.75 ms2.45 ms941
BunUnavailable: unavailable

Showing 194 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 572a2e31be0e2a09be0138bc44501b34d6245b51 · compiled 572a2e31be0e2a09be0138bc44501b34d6245b51 · node v22.23.2
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 572a2e31be0e