Javascript VS Acton benchmarks

Current benchmark data was generated on Wed Mar 22 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 1349ms 15ms 218.9MB 1700ms 53ms bun 0.5.8
javascript 1.js 3731ms 51ms 264.3MB 2677ms 1303ms node 19.8.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 126ms 2.7ms 101.5MB 110ms 13ms bun 0.5.8
javascript 1.js 187ms 1.1ms 70.5MB 167ms 17ms node 19.8.1

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 2407ms 21ms 82.1MB 2447ms 47ms node 19.8.1
javascript 1.js 3349ms 34ms 115.9MB 3340ms 33ms bun 0.5.8

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 221ms 6.1ms 63.1MB 203ms 7ms node 19.8.1
javascript 1.js 243ms 4.9ms 103.5MB 253ms 17ms bun 0.5.8

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 395ms 1.0ms 102.9MB 377ms 10ms bun 0.5.8
javascript 1.js 416ms 4.0ms 60.2MB 413ms 20ms node 19.8.1
acton 1.act 539ms 20ms 7.4MB 490ms 20ms actonc 0.14.2

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 190ms 4.3ms 53.8MB 197ms 10ms node 19.8.1
acton 1.act 235ms 21ms 5.3MB 195ms 0ms actonc 0.14.2
javascript 1.js 418ms 0.5ms 89.7MB 393ms 17ms bun 0.5.8

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 8.0ms 3.1ms 3.4MB 0ms 0ms actonc 0.14.2
javascript 1.js 18ms 0.6ms 54.6MB 0ms 10ms bun 0.5.8
javascript 1.js 45ms 0.7ms 43.6MB 24ms 8ms node 19.8.1

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 154ms 12ms 85.6MB 87ms 67ms bun 0.5.8
javascript 1.js 3953ms 27ms 155.5MB 1757ms 390ms node 19.8.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 96ms 4.2ms 72.7MB 30ms 27ms bun 0.5.8
javascript 1.js 390ms 6.4ms 71.6MB 370ms 80ms node 19.8.1

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 139ms 8.2ms 93.6MB 103ms 20ms bun 0.5.8
javascript 1.js 174ms 1.7ms 76.4MB 150ms 20ms node 19.8.1

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 729ms 5.1ms 263.7MB 700ms 57ms bun 0.5.8
javascript 1.js 1135ms 7.0ms 282.5MB 1083ms 117ms node 19.8.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 2.js 382ms 2.9ms 55.0MB 370ms 10ms node 19.8.1
javascript 1.js 584ms 6.5ms 148.4MB 567ms 37ms bun 0.5.8
javascript 2.js 784ms 11ms 110.7MB 787ms 20ms bun 0.5.8
javascript 1.js 1042ms 3.3ms 62.1MB 1027ms 7ms node 19.8.1

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 2.js 1027ms 4.6ms 62.2MB 1007ms 10ms node 19.8.1
javascript 1.js 1679ms 46ms 178.8MB 1700ms 43ms bun 0.5.8
javascript 2.js 2284ms 9.0ms 121.1MB 2273ms 37ms bun 0.5.8
javascript 1.js 2982ms 2.5ms 62.4MB 2960ms 10ms node 19.8.1

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 2.js 207ms 2.3ms 54.9MB 200ms 0ms node 19.8.1
javascript 1.js 299ms 5.3ms 116.5MB 287ms 20ms bun 0.5.8
javascript 1.js 377ms 1.6ms 50.6MB 363ms 7ms node 19.8.1
javascript 2.js 430ms 5.7ms 103.7MB 427ms 20ms bun 0.5.8

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 825ms 2.7ms 172.6MB 907ms 37ms bun 0.5.8
javascript 1.js 867ms 10ms 122.8MB 867ms 63ms node 19.8.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 182ms 2.4ms 105.5MB 170ms 13ms bun 0.5.8
javascript 1.js 239ms 2.9ms 90.9MB 230ms 27ms node 19.8.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 606ms 5.0ms 47.8MB 593ms 7ms node 19.8.1
javascript 6.js 1019ms 3.4ms 70.5MB 1000ms 13ms bun 0.5.8

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 106ms 1.9ms 47.8MB 93ms 7ms node 19.8.1
javascript 6.js 129ms 4.4ms 66.6MB 120ms 7ms bun 0.5.8

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 3085ms 3.4ms 102.8MB 3103ms 23ms bun 0.5.8
javascript 1.js 3350ms 17ms 52.3MB 3347ms 10ms node 19.8.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 800ms 7.6ms 103.6MB 800ms 20ms bun 0.5.8
javascript 1.js 882ms 4.7ms 50.7MB 883ms 0ms node 19.8.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 4313ms 37ms 7.9MB 3970ms 700ms actonc 0.14.2
javascript 3.js timeout 0.0ms 79.1MB 4977ms 27ms node 19.8.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 1394ms 250ms 6.8MB 1220ms 253ms actonc 0.14.2
javascript 3.js 1595ms 0.9ms 63.3MB 1580ms 20ms node 19.8.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2796ms 12ms 69.1MB 5240ms 30ms node 19.8.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 866ms 26ms 69.8MB 1493ms 27ms node 19.8.1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 421ms 14ms 66.9MB 537ms 30ms node 19.8.1