Javascript VS Python benchmarks

Current benchmark data was generated on Sun Dec 01 2024, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1-m.js 934ms 12ms 179.4MB 1463ms 247ms bun 1.1.38
python 1.py 1149ms 16ms 95.7MB 1087ms 47ms pypy 3.10.14
javascript 1-m.js 1245ms 11ms 292.8MB 2167ms 173ms node 23.3.0
python 1.py timeout 0.0ms 40.8MB 4970ms 17ms cpython 3.13.0
python 1.py timeout 0.0ms 40.6MB 4743ms 240ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 94ms 1.9ms 68.0MB 63ms 20ms pypy 3.10.14
javascript 1.js 95ms 0.9ms 78.8MB 67ms 30ms bun 1.1.38
javascript 1.js 124ms 1.3ms 82.1MB 123ms 20ms node 23.3.0
python 1.py 491ms 25ms 11.9MB 463ms 7ms pyston 3.8.12
python 1.py 710ms 4.2ms 12.8MB 697ms 0ms cpython 3.13.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1178ms 15ms 102.5MB 1133ms 30ms pypy 3.10.14
javascript 1.js 1579ms 4.5ms 93.9MB 1667ms 47ms node 23.3.0
javascript 1.js 2164ms 25ms 99.8MB 2190ms 60ms bun 1.1.38
python 1.py timeout 0.0ms 21.1MB 4977ms 7ms cpython 3.13.0
python 1.py timeout 0.0ms 17.1MB 4977ms 7ms pyston 3.8.12

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 155ms 1.6ms 76.4MB 140ms 23ms node 23.3.0
javascript 1.js 180ms 1.0ms 85.4MB 213ms 17ms bun 1.1.38
python 1.py 219ms 6.3ms 84.3MB 183ms 20ms pypy 3.10.14
python 1.py 572ms 3.4ms 20.4MB 543ms 10ms cpython 3.13.0
python 1.py 685ms 13ms 16.8MB 663ms 7ms pyston 3.8.12

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 250ms 4.1ms 82.8MB 203ms 30ms pypy 3.10.14
javascript 1.js 275ms 2.6ms 66.4MB 273ms 37ms node 23.3.0
python 1.py 356ms 1.6ms 12.6MB 337ms 3ms cpython 3.13.0
javascript 1.js 651ms 2.3ms 77.2MB 620ms 27ms bun 1.1.38
python 1.py 1997ms 6.3ms 9.6MB 1983ms 0ms pyston 3.8.12

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 101ms 1.8ms 62.9MB 70ms 17ms pypy 3.10.14
python 1.py 112ms 8.0ms 11.9MB 97ms 0ms cpython 3.13.0
javascript 1.js 125ms 1.1ms 65.4MB 143ms 13ms node 23.3.0
python 1.py 346ms 1.7ms 8.8MB 330ms 0ms pyston 3.8.12
javascript 1.js 549ms 51ms 67.0MB 523ms 20ms bun 1.1.38

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 12ms 1.2ms 7.6MB 5ms 5ms pyston 3.8.12
javascript 1.js 12ms 0.4ms 31.8MB 0ms 10ms bun 1.1.38
python 1.py 15ms 0.3ms 8.5MB 10ms 0ms cpython 3.13.0
python 1.py 29ms 1.5ms 51.0MB 4ms 12ms pypy 3.10.14
javascript 1.js 31ms 0.3ms 51.9MB 16ms 4ms node 23.3.0

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1-m.bun.js 352ms 14ms 69.3MB 150ms 410ms bun 1.1.38
python 1.py 2123ms 18ms 36.4MB 1133ms 1507ms pyston 3.8.12
python 1.py 2379ms 301ms 33.3MB 1593ms 1627ms cpython 3.13.0
javascript 1.js 3204ms 115ms 184.7MB 3040ms 1450ms node 23.3.0
python 1.py 4814ms 17ms 107.0MB 2870ms 1220ms pypy 3.10.14

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 130ms 10ms 54.0MB 43ms 80ms bun 1.1.38
javascript 1.js 397ms 6.2ms 85.4MB 330ms 133ms node 23.3.0
python 1.py 1101ms 27ms 28.8MB 217ms 287ms pyston 3.8.12
python 1.py 1170ms 92ms 28.7MB 317ms 273ms cpython 3.13.0
python 1.py 1611ms 66ms 89.5MB 723ms 200ms pypy 3.10.14

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 83ms 0.8ms 65.6MB 53ms 20ms bun 1.1.38
javascript 1.js 131ms 12ms 78.8MB 113ms 20ms node 23.3.0
python 1.py 197ms 4.7ms 38.1MB 170ms 10ms pyston 3.8.12
python 1.py 218ms 1.6ms 38.5MB 190ms 10ms cpython 3.13.0
python 1.py 292ms 7.9ms 87.4MB 247ms 30ms pypy 3.10.14

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 381ms 3.3ms 206.8MB 340ms 87ms bun 1.1.38
javascript 1.js 750ms 34ms 209.9MB 837ms 80ms node 23.3.0
python 1.py 1808ms 8.0ms 220.5MB 1643ms 143ms pyston 3.8.12
python 1.py 1885ms 7.7ms 222.0MB 1820ms 50ms pypy 3.10.14
python 1.py 1937ms 18ms 223.0MB 1830ms 93ms cpython 3.13.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 146ms 5.0ms 57.9MB 120ms 7ms pypy 3.10.14
python 1.py 176ms 0.5ms 59.5MB 150ms 10ms pypy 3.10.14
javascript 2.js 307ms 1.5ms 66.6MB 293ms 17ms node 23.3.0
javascript 1.js 556ms 4.1ms 64.6MB 543ms 7ms node 23.3.0
javascript 2.js 654ms 2.5ms 122.6MB 690ms 73ms bun 1.1.38
python 1.py 713ms 3.1ms 8.9MB 703ms 0ms pyston 3.8.12
python 2.py 841ms 12ms 8.5MB 830ms 0ms pyston 3.8.12
javascript 1.js 879ms 2.7ms 110.8MB 957ms 87ms bun 1.1.38
python 1.py 1118ms 25ms 9.4MB 1110ms 0ms cpython 3.13.0
python 2.py 1290ms 15ms 9.1MB 1273ms 0ms cpython 3.13.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 339ms 1.0ms 58.9MB 313ms 13ms pypy 3.10.14
python 1.py 372ms 2.9ms 60.4MB 347ms 10ms pypy 3.10.14
javascript 2.js 850ms 3.9ms 71.8MB 830ms 23ms node 23.3.0
javascript 1.js 1581ms 2.8ms 71.0MB 1560ms 17ms node 23.3.0
javascript 2.js 1821ms 23ms 122.0MB 1977ms 60ms bun 1.1.38
python 1.py 2130ms 31ms 8.9MB 2117ms 3ms pyston 3.8.12
python 2.py 2504ms 61ms 8.5MB 2490ms 0ms pyston 3.8.12
javascript 1.js 2555ms 37ms 110.8MB 2857ms 143ms bun 1.1.38
python 1.py 3298ms 41ms 9.4MB 3283ms 0ms cpython 3.13.0
python 2.py 3869ms 4.9ms 9.1MB 3853ms 0ms cpython 3.13.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 103ms 0.8ms 57.8MB 77ms 13ms pypy 3.10.14
python 1.py 120ms 2.9ms 58.5MB 97ms 7ms pypy 3.10.14
javascript 2.js 166ms 2.5ms 60.1MB 163ms 3ms node 23.3.0
javascript 1.js 172ms 16ms 61.8MB 157ms 10ms node 23.3.0
javascript 1.js 323ms 4.0ms 119.0MB 360ms 73ms bun 1.1.38
python 1.py 349ms 5.9ms 8.5MB 333ms 0ms pyston 3.8.12
javascript 2.js 352ms 4.1ms 125.4MB 380ms 47ms bun 1.1.38
python 2.py 384ms 5.3ms 8.1MB 367ms 3ms pyston 3.8.12
python 1.py 536ms 14ms 9.3MB 520ms 0ms cpython 3.13.0
python 2.py 617ms 1.4ms 8.8MB 607ms 0ms cpython 3.13.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1-m.js 510ms 1.8ms 138.7MB 657ms 147ms bun 1.1.38
javascript 1.js 538ms 0.3ms 134.0MB 627ms 60ms node 23.3.0
python 1.py 2247ms 43ms 210.1MB 2133ms 97ms pypy 3.10.14
python 1.py timeout 0.0ms 93.9MB 4953ms 30ms cpython 3.13.0
python 1.py timeout 0.0ms 130.3MB 4930ms 50ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 124ms 3.0ms 86.3MB 103ms 37ms bun 1.1.38
javascript 1.js 162ms 1.2ms 101.8MB 160ms 37ms node 23.3.0
python 1.py 378ms 2.6ms 103.6MB 327ms 33ms pypy 3.10.14
python 1.py 3059ms 119ms 37.1MB 3030ms 17ms cpython 3.13.0
python 1.py timeout 0.0ms 48.9MB 4953ms 33ms pyston 3.8.12

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 460ms 5.9ms 59.6MB 447ms 7ms node 23.3.0
javascript 6.js 672ms 15ms 44.9MB 667ms 3ms bun 1.1.38
python 2.py 1352ms 14ms 59.8MB 1320ms 17ms pypy 3.10.14
python 1.py 2641ms 30ms 56.6MB 2610ms 13ms pypy 3.10.14
python 1.py timeout 0.0ms 8.8MB 4987ms 0ms cpython 3.13.0
python 2.py timeout 0.0ms 8.8MB 4983ms 0ms cpython 3.13.0
python 1.py timeout 0.0ms 8.3MB 4990ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 8.1MB 4990ms 0ms pyston 3.8.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 77ms 1.7ms 59.5MB 67ms 3ms node 23.3.0
javascript 6.js 87ms 1.8ms 44.9MB 80ms 10ms bun 1.1.38
python 2.py 180ms 2.7ms 57.6MB 153ms 10ms pypy 3.10.14
python 1.py 304ms 5.3ms 56.8MB 277ms 10ms pypy 3.10.14
python 1.py 1078ms 255ms 8.3MB 1063ms 0ms pyston 3.8.12
python 2.py 1319ms 15ms 8.1MB 1303ms 0ms pyston 3.8.12
python 1.py 2912ms 17ms 8.8MB 2900ms 0ms cpython 3.13.0
python 2.py 3132ms 41ms 8.8MB 3123ms 0ms cpython 3.13.0

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 2575ms 12ms 63.5MB 2577ms 20ms node 23.3.0
javascript 1.js 2795ms 11ms 84.3MB 2807ms 53ms bun 1.1.38
python 1.py 3142ms 2.3ms 8.3MB 3133ms 0ms pyston 3.8.12
python 1.py 3709ms 13ms 74.6MB 3663ms 30ms pypy 3.10.14
python 1.py 3866ms 69ms 8.8MB 3857ms 0ms cpython 3.13.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 681ms 4.2ms 61.0MB 683ms 13ms node 23.3.0
javascript 1.js 738ms 1.4ms 83.5MB 747ms 23ms bun 1.1.38
python 1.py 799ms 3.3ms 8.3MB 783ms 0ms pyston 3.8.12
python 1.py 976ms 18ms 8.8MB 960ms 0ms cpython 3.13.0
python 1.py 1043ms 10ms 67.5MB 1003ms 17ms pypy 3.10.14

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 4.py 1907ms 12ms 8.9MB 1853ms 37ms pyston 3.8.12
python 4.py 1961ms 9.8ms 9.5MB 1897ms 47ms cpython 3.13.0
python 4.py 2141ms 12ms 89.1MB 2093ms 33ms pypy 3.10.14
javascript 3.js 4746ms 11ms 91.6MB 4717ms 33ms node 23.3.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 4.py 450ms 3.5ms 8.6MB 437ms 0ms pyston 3.8.12
python 4.py 484ms 30ms 9.1MB 470ms 0ms cpython 3.13.0
python 4.py 545ms 13ms 83.5MB 503ms 27ms pypy 3.10.14
javascript 3.js 1029ms 1.4ms 74.0MB 1013ms 17ms node 23.3.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2167ms 20ms 117.7MB 8173ms 63ms node 23.3.0
python 8.py timeout 0.0ms 16.7MB 53ms 10ms cpython 3.13.0
python 8.py timeout 0.0ms 100.0MB 833ms 137ms pypy 3.10.14
python 8.py timeout 0.0ms 18.2MB 70ms 13ms pyston 3.8.12

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 643ms 4.2ms 117.0MB 2300ms 43ms node 23.3.0
python 8.py timeout 0.0ms 16.4MB 93ms 30ms cpython 3.13.0
python 8.py timeout 0.0ms 99.8MB 1533ms 517ms pypy 3.10.14
python 8.py timeout 0.0ms 17.5MB 140ms 33ms pyston 3.8.12

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 262ms 0.7ms 112.9MB 813ms 47ms node 23.3.0
python 8-m.py 1973ms 18ms 95.1MB 6307ms 370ms pypy 3.10.14
python 8.py timeout 0.0ms 16.1MB 277ms 40ms cpython 3.13.0
python 8.py timeout 0.0ms 17.3MB 397ms 113ms pyston 3.8.12