The Computer Language
25.02 Benchmarks Game

Node.js versus Rust

How the programs are written matters! Always look at the source code.

If the fastest programs are * hand-written vector instructions, does the host language matter? You might be more interested in the less optimised programs — more seconds, less gz source code.

fannkuch-redux
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* Rust #6 3.81 4,137 1260 10.56 15.15—15.33
Rust #4 6.90 4,141 1026 10.29 27.12
Rust #5 7.47 3,985 1023 10.27 29.34
Rust #2 9.16 3,985 1198 9.94 35.93
Node.js #5 11.14 109,359 1320 0.11 44.12—44.75
Node.js #8 58.20 63,136 452 0.11 58.18
n-body
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* Rust #9 2.19 3,195 1881 9.38 1.45—4.13
* Rust #7 3.24 2,937 1759 9.85 3.24
Rust #3 3.46 3,023 1774 9.16 3.46
Rust #2 3.65 3,019 1809 9.62 3.65
* Rust #6 4.36 3,019 1796 9.37 4.00—5.52
* Rust #5 5.02 3,027 2224 9.56 5.02
Rust #4 5.13 3,019 1810 9.19 4.74—6.21
Rust 5.52 3,019 1483 9.35 5.55—5.67
Node.js #6 8.60 66,097 1274 0.11 8.62—8.69
Node.js #8 9.65 65,671 1173 0.12 9.66—9.77
spectral-norm
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* Rust #6 0.72 4,293 1132 10.41 2.85
Rust #4 0.72 4,014 823 10.35 2.85
* Rust #5 0.72 3,981 1062 10.56 2.85
* Rust 0.72 4,276 1262 9.73 2.86
* Rust #2 0.73 4,264 1117 10.55 2.86
* Rust #3 0.74 4,010 1060 9.69 2.94
Node.js #7 5.40 65,417 420 0.14 5.40
Node.js 5.41 66,429 326 0.12 5.42—5.62
Node.js #6 1.61 114,618 1002 0.12 6.03
Node.js #8 6.53 66,380 355 0.11 6.53—6.67
* Rust #7   Empty  
mandelbrot
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* Rust #4 0.95 35,955 1301 10.94 3.78
* Rust #6 1.08 36,385 1338 10.98 4.22
Rust #2 1.10 36,016 770 11.17 4.34
Rust #5 1.12 36,549 725 11.15 4.38
Rust #7 1.11 35,934 763 10.92 4.38
Rust #3 1.15 14,008 1013 10.73 4.57
Rust 2.03 42,541 874 9.75 7.90
Node.js #3 4.05 143,802 1128 0.07 15.87—15.93
Node.js #2 29.40 73,261 422 0.12 29.42
Node.js 68.65 67,793 380 0.11 70.52—72.09
Node.js #8 70.27 67,498 412 0.09 71.43—72.95
fasta
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* Rust #7 0.78 4,866 2533 10.02 1.55
Rust #3 1.98 2,933 1235 9.40 1.98
Rust #9 0.94 5,362 1952 9.60 3.22—3.29
Rust #5 0.94 5,505 1963 9.57 3.33—3.44
Rust #2 0.94 5,550 1910 9.74 3.45—3.49
Rust #6 3.48 128,033 959 9.00 3.48
Rust #4 3.48 128,160 944 9.04 3.48
Rust 4.49 2,990 1240 9.54 4.51—4.55
* Node.js #5 2.55 117,953 2050 0.14 7.11—7.18
Node.js #8 19.16 73,728 742 0.10 19.41—19.52
Node.js 38.96 70,394 815 0.12 39.72—40.24
k-nucleotide
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
Rust #7 2.61 139,071 1585 12.79 8.24—8.48
Rust #3 3.24 141,701 1549 10.47 9.47—9.81
Rust #6 2.81 165,057 1697 12.99 10.17—10.43
Rust #5 3.82 143,118 1745 10.89 11.24—11.54
Rust #2 6.05 143,139 1350 10.31 15.52—16.06
Rust #9 6.58 140,845 1850 12.86 17.36—18.41
Rust #4 6.76 142,778 1755 11.32 18.78—19.84
Node.js #3 16.44 452,764 1817 0.12 44.48—45.05
Rust 21.38 159,539 1086 10.25 65.36—66.34
Node.js #8 107.03 736,874 678 0.09 109.38—113.28
Node.js #2 37.75 1,894,363 941 0.11 113.17—114.37
Node.js 39.56 1,365,475 1011 0.11 115.80—116.78
reverse-complement
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* Rust 0.54 513,090 2762 10.01 0.85
Rust #2 0.99 1,022,960 1332 10.05 1.63
Rust #3 1.00 1,022,190 1105 10.48 1.73
* Node.js #2 15.52 764,158 1228 0.13 16.24—16.30
* Node.js #7   Bad Output  
binary-trees
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
Rust #5 1.10 137,413 771 10.93 3.95—4.10
Rust #2 1.21 141,509 729 10.47 4.32—4.38
Rust #4 1.38 171,651 765 10.67 5.04—5.11
Rust #3 1.40 162,599 762 10.77 5.04—5.12
Rust 2.07 137,667 760 9.46 7.21—7.27
Node.js #7 15.99 1,076,969 458 0.11 28.29—28.58
Node.js #6 8.54 1,278,456 752 0.12 30.88—31.03
Node.js #8 19.97 952,320 521 0.13 33.35—33.64
Node.js 8.95 1,401,799 717 0.11 33.88—34.17
pidigits
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
Rust #4 0.72 3,994 804 10.17 0.72
* Rust 0.75 4,239 1426 9.18 0.75
* Rust #2 0.75 4,243 1312 9.19 0.75
* Rust #3 0.75 4,481 1373 9.31 0.75
Node.js #4 1.15 71,004 487 0.12 1.16
Node.js #2 12.19 101,380 405 0.12 12.18—12.39
Node.js #3 12.28 101,482 431 0.14 12.42—12.70
regex-redux
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
Rust #6 1.18 160,154 994 11.90 1.43
Rust #5 1.34 210,186 777 10.93 1.58
Rust 1.33 160,023 811 11.14 1.56—1.61
Rust #4 1.35 206,840 771 10.94 1.60
Rust #3 1.36 210,850 726 12.52 1.59—1.65
Rust #2 1.39 160,625 707 10.84 1.64
* Rust #7 0.79 155,496 2464 11.52 2.01
Node.js #3 4.31 839,913 675 0.12 5.33
Node.js #4 5.46 1,036,313 471 0.11 5.73—5.82
Node.js

v23.0.0

Rust

1.83.0
(90b35a623
2024-11-26)
LLVM version: 19.1.1