Codon VS Javascript benchmarks

Current benchmark data was generated on Thu Feb 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.)

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
codon 1.py 4.5ms 0.8ms 7.2MB 0ms 0ms codon 0.16.3
javascript 1.js 14ms 0.3ms 65.6MB 0ms 10ms bun 1.0.25
javascript 1.js 34ms 0.8ms 44.0MB 16ms 6ms node 21.6.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 499ms 10ms 49.9MB 483ms 7ms node 21.6.1
javascript 6.js 704ms 2.9ms 81.5MB 703ms 3ms bun 1.0.25
codon 1.py 1295ms 1.9ms 7.7MB 1287ms 0ms codon 0.16.3

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 85ms 0.6ms 49.9MB 67ms 13ms node 21.6.1
javascript 6.js 92ms 2.7ms 81.4MB 87ms 3ms bun 1.0.25
codon 1.py 140ms 2.4ms 5.8MB 127ms 0ms codon 0.16.3

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
codon 1.py 406ms 0.9ms 46.5MB 390ms 0ms codon 0.16.3
codon 2.py 482ms 8.3ms 107.0MB 463ms 13ms codon 0.16.3

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
codon 1.py 81ms 2.0ms 17.2MB 70ms 0ms codon 0.16.3
codon 2.py 110ms 3.4ms 26.0MB 97ms 3ms codon 0.16.3