2015-04-01

Crystal Internal Benchmark (April 2015)

So, today I stumbled upon a benchmark by Kostya. It's quite interesting to see the result :3
UPDATE: see the newer one (Nov 2016) here.

  • gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
  • Nim Compiler Version 0.10.2 (2014-12-29) [Linux: amd64]
  • Crystal 0.5.5 [d814c6c] (Fri Dec 12 22:50:10 UTC 2014)
  • go version go1.4 linux/amd64
  • DMD64 D Compiler v2.066.1
  • V8 version 3.29.62 (candidate)
  • rustc 0.13.0-nightly (5745e4195 2014-11-12 22:57:16 +0000)
  • Scala compiler version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL
  • Nodejs v0.10.25
  • PyPy 2.4.0 with GCC 4.6.3
  • topaz (ruby-1.9.3p125) (git rev b95c858) [x86_64-linux]
  • ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
  • Python 2.7.6
  • rubinius 2.2.10 (2.1.0 bf61ae2e 2014-06-27 JI) [x86_64-linux-gnu]
  • jruby 1.7.19 (1.9.3p551) 2015-01-29 20786bd on Java HotSpot(TM) 64-Bit Server VM 1.7.0_67-b01 +jit [linux-amd64]
  • jruby 9.0.0.0.pre1 (2.2.0p0) 2015-01-20 d537cab Java HotSpot(TM) 64-Bit Server VM 24.65-b04 on 1.7.0_67-b01 +jit [linux-amd64]
  • Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
  • julia version 0.3.1
  • clang version 3.5-1ubuntu1 (trunk) (based on LLVM 3.5)

Halvak loop finder
Language
Time,s
Memory, Mb
Crystal
15.66
390.9
Nim
16.74
887.7
C++
17.72
174.5
Scala
33.38
341.0
D
34.84
274.2
Go
44.56
424.9
Python Pypy
69.46
730.2
Python
396.54
724.0

Matrix multiplication
Language
Time,s
Memory, Mb
Julia Native
0.69
119.6
C
3.64
69.2
Java
3.68
134.3
Nim
3.73
131.8
D
3.75
71.8
Rust
3.79
100.9
Crystal
3.84
72.1
Go
4.77
75.6
Javascript V8
6.87
81.5
Python Pypy
7.10
89.2
Scala
10.26
154.0
Julia
27.74
159.7
Ruby Topaz
81.41
206.2
Ruby
338.40
82.8
Python
447.39
74.0
Ruby JRuby
412.61
574.9
Ruby JRuby9k
467.99
602.3
Ruby Rbx
591.70
325.0

JSON parse
Language
Time,s
Memory, Mb
C++ Rapid
0.79
687.1
Crystal Schema
1.39
292.3
Crystal Pull
1.75
1.2
Crystal
2.27
1085.8
Nim
3.32
1344.3
Python Pypy
4.99
1365.4
Rust
5.24
1519.1
C++ LibJson
5.49
2796.3
Go
6.27
420.9
Python
9.85
1409.1
Julia
10.48
2342.9
Ruby
10.54
2086.2
Javascript Node
11.61
926.4
C++ Boost
16.44
2915.2
Ruby JRuby9k
18.89
1996.8
Ruby JRuby
25.78
2712.6
D
35.39
926.6
Ruby Rbx
67.13
4681.0
Scala
343.13
2373.0

Base64 encode and decode
Language
Time,s
Memory, Mb
C
2.70
32.3
Ruby
2.73
125.3
Crystal
3.35
82.4
Nim
4.13
52.4
Ruby Rbx
4.29
30.7
C++
5.69
65.5
D
6.05
43.9
Python
7.62
52.6
Rust
7.84
42.9
Javascript Node
7.93
777.1
Python Pypy
8.22
114.6
Ruby JRuby
16.76
496.6
Ruby JRuby9k
17.72
417.1
Julia
19.08
155.7
Go
21.24
94.2
Scala
35.06
301.2

Brainfuck interpreter
Language
Time,s
Memory, Mb
Nim Clang
2.55
0.7
Nim Gcc
4.75
0.6
C++
5.08
1.1
Crystal
6.76
0.9
Go
7.57
1.0
Javascript V8
9.41
8.1
D
9.42
0.9
Rust
9.54
5.0
Scala
11.99
1.6
Javascript Node
17.72
9.5
Python Pypy
20.12
20.8
Ruby JRuby
96.20
97.0
Ruby Topaz
112.91
36.0
Ruby
226.86
8.0
Ruby JRuby9k
241.16
256.6
Julia
354.55
57.0
Python
452.44
4.9
Ruby Rbx
472.08
45.0