Crystal VS Odin benchmarks

Current benchmark data was generated on Thu Sep 22 2022, 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
crystal 1.cr 1541ms 5.5ms 66.2MB 1840ms 17ms crystal 1.5.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 131ms 0.2ms 13.1MB 140ms 0ms crystal 1.5.1

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 1972ms 20ms 22.3MB 1920ms 30ms crystal 1.5.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 110ms 4.1ms 7.6MB 97ms 3ms crystal 1.5.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 85ms 3.4ms 9.2MB 70ms 0ms crystal 1.5.1

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 31ms 0.4ms 7.0MB 20ms 0ms crystal 1.5.1

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 3970ms 6.7ms 3.0MB 3957ms 0ms crystal 1.5.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 323ms 0.4ms 3.0MB 310ms 0ms crystal 1.5.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 2.cr 859ms 3.2ms 5.6MB 750ms 97ms crystal 1.5.1
crystal 1.cr 1059ms 1.3ms 16.7MB 903ms 140ms crystal 1.5.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 2.cr 91ms 1.0ms 5.3MB 70ms 3ms crystal 1.5.1
crystal 1.cr 111ms 0.2ms 4.6MB 87ms 10ms crystal 1.5.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.7ms 0.5ms 0.9MB 0ms 0ms odin 2022
crystal 1.cr 4.6ms 2.2ms 3.1MB 0ms 0ms crystal 1.5.1

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 3369ms 198ms 152.7MB 297ms 283ms crystal 1.5.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 1173ms 102ms 32.3MB 40ms 40ms crystal 1.5.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 0-unsafe.cr 61ms 0.9ms 5.0MB 50ms 0ms crystal 1.5.1
crystal 1.cr 108ms 0.4ms 3.0MB 97ms 0ms crystal 1.5.1
odin 1.odin 182ms 0.8ms 1.9MB 170ms 0ms odin 2022

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 0-unsafe.cr 174ms 0.5ms 3.1MB 160ms 0ms crystal 1.5.1
crystal 1.cr 312ms 1.3ms 3.0MB 300ms 0ms crystal 1.5.1
odin 1.odin 545ms 3.0ms 1.9MB 530ms 0ms odin 2022

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 0-unsafe.cr 31ms 0.8ms 5.0MB 20ms 0ms crystal 1.5.1
crystal 1.cr 55ms 2.1ms 3.1MB 47ms 0ms crystal 1.5.1
odin 1.odin 85ms 2.6ms 0.9MB 73ms 0ms odin 2022

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 994ms 0.9ms 7.6MB 980ms 0ms crystal 1.5.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 46ms 0.5ms 6.4MB 40ms 0ms crystal 1.5.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 1083ms 49ms 64.3MB 1230ms 23ms crystal 1.5.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 207ms 6.9ms 17.5MB 223ms 3ms crystal 1.5.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 516ms 4.8ms 2.9MB 500ms 0ms crystal 1.5.1
crystal 2.cr 540ms 0.7ms 2.9MB 530ms 0ms crystal 1.5.1
odin 1.odin 2502ms 1.7ms 0.9MB 2490ms 0ms odin 2022

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 56ms 1.6ms 3.0MB 50ms 0ms crystal 1.5.1
crystal 2.cr 60ms 2.8ms 2.9MB 43ms 0ms crystal 1.5.1
odin 1.odin 253ms 0.8ms 0.9MB 240ms 0ms odin 2022

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 2.cr 467ms 2.2ms 9.8MB 453ms 0ms crystal 1.5.1
odin 1.odin 726ms 24ms 40.6MB 700ms 10ms odin 2022
crystal 1.cr 851ms 16ms 42.7MB 827ms 7ms crystal 1.5.1
odin 2.odin 1160ms 1.8ms 6.3MB 1143ms 3ms odin 2022

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 2.cr 108ms 0.2ms 4.4MB 97ms 0ms crystal 1.5.1
odin 1.odin 122ms 0.6ms 11.4MB 110ms 0ms odin 2022
crystal 1.cr 151ms 1.6ms 12.9MB 137ms 0ms crystal 1.5.1
odin 2.odin 283ms 0.6ms 2.8MB 270ms 0ms odin 2022

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 2779ms 53ms 9.0MB 3030ms 280ms crystal 1.5.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 644ms 5.5ms 5.3MB 670ms 70ms crystal 1.5.1

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 2474ms 0.8ms 196.1MB 2397ms 57ms crystal 1.5.1

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 256ms 2.5ms 24.5MB 237ms 3ms crystal 1.5.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 4618ms 1.5ms 2.9MB 4607ms 0ms odin 2022
crystal 1.cr timeout 0.0ms 0.0MB 0ms 0ms crystal 1.5.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1158ms 0.3ms 2.3MB 1147ms 0ms odin 2022
crystal 1.cr 1510ms 2.5ms 5.8MB 1493ms 0ms crystal 1.5.1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 294ms 3.8ms 1.9MB 280ms 0ms odin 2022
crystal 1.cr 382ms 1.3ms 3.8MB 370ms 0ms crystal 1.5.1