The Computer Language
25.02 Benchmarks Game

Node.js versus Lua

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
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
Lua 667.45 3,363 469 666.97
n-body
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
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
Lua #2 220.15 3,289 1200 225.78—234.77
Lua #4 225.31 3,285 1312 229.08—235.54
Lua 251.60 3,281 1207 259.27—269.77
spectral-norm
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
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
Lua 78.75 3,686 335 78.70—78.87
mandelbrot
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
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
Lua 345.21 36,647 365 344.63
Lua #3 345.67 36,696 364 345.17
Lua #2 377.62 36,393 373 377.09
Lua #6 115.81 652,812 630 399.61
fasta
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* 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
Lua #2 24.12 3,695 1065 24.07—25.28
Lua #3 24.16 3,695 1065 24.28—25.66
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
Node.js #3 16.44 452,764 1817 0.12 44.48—45.05
Lua #2 99.19 612,901 620 99.36—99.94
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
* Node.js #2 15.52 764,158 1228 0.13 16.24—16.30
Lua #2 40.51 2,724,557 560 40.80—41.22
Lua #5 42.76 2,227,057 758 43.44—44.96
Lua #4 49.30 1,057,935 600 49.51—50.34
* Node.js #7   Bad Output  
binary-trees
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
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
Lua #2 141.62 982,589 418 142.08—143.60
Lua #3 82.77 1,783,443 690 166.40—166.97
Lua #4 48.21 2,606,240 670 178.90—179.68
pidigits
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
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
* Lua #7   Empty  
* Lua #5   Empty  
* Lua   Empty  
regex-redux
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
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
Lua   Empty  
Node.js

v23.0.0

Lua

Lua 5.4.6 Copyright (C)
1994-2023 Lua.org, PUC-Rio