Javascript VS Php benchmarks

Current benchmark data was generated on Sun Jan 29 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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.js 1311ms 115ms 253.9MB 1557ms 67ms bun 0.5.1
javascript 1.js 3548ms 72ms 239.0MB 2617ms 1197ms node 19.5.0
php 1.php timeout 0.0ms 141.0MB 4947ms 33ms php 8.2.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 121ms 2.4ms 101.4MB 103ms 20ms bun 0.5.1
javascript 1.js 170ms 5.1ms 70.0MB 153ms 20ms node 19.5.0
php 1.php 787ms 4.5ms 62.3MB 757ms 10ms php 8.2.1

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 2318ms 32ms 81.3MB 2347ms 37ms node 19.5.0
javascript 1.js 3573ms 62ms 124.3MB 3573ms 30ms bun 0.5.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 250ms 11ms 62.5MB 210ms 13ms node 19.5.0
javascript 1.js 294ms 5.9ms 107.9MB 270ms 10ms bun 0.5.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 395ms 1.0ms 98.1MB 377ms 10ms bun 0.5.1
javascript 1.js 404ms 1.7ms 61.3MB 407ms 17ms node 19.5.0

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 188ms 0.3ms 52.6MB 193ms 10ms node 19.5.0
javascript 1.js 415ms 0.9ms 86.8MB 393ms 17ms bun 0.5.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 15ms 1.1ms 55.5MB 0ms 0ms bun 0.5.1
javascript 1.js 43ms 0.7ms 43.1MB 30ms 2ms node 19.5.0
php 1.php 47ms 1.6ms 50.8MB 22ms 12ms php 8.2.1

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 134ms 11ms 92.4MB 80ms 50ms bun 0.5.1
javascript 1.js 3863ms 30ms 155.6MB 1723ms 377ms node 19.5.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 92ms 8.9ms 70.9MB 20ms 27ms bun 0.5.1
javascript 1.js 368ms 5.6ms 71.7MB 370ms 57ms node 19.5.0

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 131ms 0.9ms 89.9MB 113ms 7ms bun 0.5.1
javascript 1.js 167ms 3.7ms 74.1MB 143ms 17ms node 19.5.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 724ms 2.7ms 262.1MB 703ms 47ms bun 0.5.1
javascript 1.js 1074ms 4.5ms 282.1MB 1017ms 117ms node 19.5.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 2.js 379ms 5.0ms 54.5MB 367ms 3ms node 19.5.0
javascript 1.js 569ms 2.9ms 146.2MB 560ms 20ms bun 0.5.1
javascript 2.js 794ms 2.8ms 109.1MB 793ms 23ms bun 0.5.1
javascript 1.js 1035ms 3.1ms 62.2MB 1017ms 10ms node 19.5.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 2.js 1011ms 4.7ms 62.0MB 997ms 10ms node 19.5.0
javascript 1.js 1591ms 8.0ms 169.9MB 1617ms 17ms bun 0.5.1
javascript 2.js 2293ms 4.9ms 121.0MB 2300ms 13ms bun 0.5.1
javascript 1.js 2977ms 2.8ms 61.6MB 2947ms 20ms node 19.5.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 2.js 207ms 4.0ms 48.5MB 197ms 3ms node 19.5.0
javascript 1.js 291ms 8.0ms 117.4MB 280ms 17ms bun 0.5.1
javascript 1.js 376ms 1.8ms 49.8MB 363ms 7ms node 19.5.0
javascript 2.js 428ms 4.2ms 100.7MB 437ms 10ms bun 0.5.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 742ms 11ms 158.6MB 820ms 33ms bun 0.5.1
javascript 1.js 773ms 6.5ms 122.2MB 777ms 57ms node 19.5.0
php 1.php 4872ms 54ms 113.2MB 4823ms 30ms php 8.2.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 172ms 1.9ms 108.9MB 163ms 13ms bun 0.5.1
javascript 1.js 228ms 7.2ms 90.2MB 213ms 33ms node 19.5.0
php 1.php 1068ms 6.3ms 66.3MB 1037ms 17ms php 8.2.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 603ms 4.1ms 47.2MB 590ms 7ms node 19.5.0
javascript 6.js 1010ms 1.0ms 63.9MB 1000ms 7ms bun 0.5.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 106ms 3.3ms 47.3MB 97ms 3ms node 19.5.0
javascript 6.js 122ms 2.4ms 70.0MB 120ms 3ms bun 0.5.1

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 3041ms 28ms 103.8MB 3063ms 20ms bun 0.5.1
javascript 1.js 3314ms 17ms 51.9MB 3310ms 13ms node 19.5.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 784ms 3.2ms 104.0MB 787ms 13ms bun 0.5.1
javascript 1.js 875ms 5.7ms 50.0MB 877ms 0ms node 19.5.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 3.js timeout 0.0ms 79.1MB 4987ms 13ms node 19.5.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 3.js 1552ms 3.1ms 62.9MB 1550ms 7ms node 19.5.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2755ms 8.6ms 69.5MB 5193ms 17ms node 19.5.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 847ms 18ms 69.1MB 1480ms 17ms node 19.5.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 388ms 18ms 70.3MB 527ms 20ms node 19.5.0