Showing posts with label clang. Show all posts
Showing posts with label clang. Show all posts

2016-11-14

Crystal Internal Benchmark (Nov 2016)

Update the snapshot of benchmark by Kostya. See the previous (April 2015) snapshot here.

  • gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
  • Nim Compiler Version 0.14.0 (2016-06-06) [Linux: amd64]
  • Crystal 0.19.2 [d81c32c] (2016-09-16)
  • go version go1.7 linux/amd64
  • gccgo (Ubuntu 4.9.1-0ubuntu1) 4.9.1
  • DMD64 D Compiler v2.068.0
  • gdc (crosstool-NG crosstool-ng-1.20.0-232-gc746732 - 20150830-2.066.1-dadb5a3784) 5.2.0
  • LDC - the LLVM D compiler (0.15.2-beta1)
  • V8 version 3.29.62 (candidate)
  • rustc 1.11.0 (9b21dcd6a 2016-08-15)
  • Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45)
  • Nodejs v7.0.0
  • PyPy 4.0.0 with GCC 4.8.4
  • 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 and  3.5.2
  • rubinius 2.2.10 (2.1.0 bf61ae2e 2014-06-27 JI) [x86_64-linux-gnu]
  • jruby 1.7.20 (1.9.3p551) 2015-05-04 3086e6a on Java HotSpot(TM) 64-Bit Server VM 1.8.0_45-b14 +jit [linux-amd64]
  • jruby 9.0.0.0.pre2 (2.2.2) 2015-04-28 2755ae0 Java HotSpot(TM) 64-Bit Server VM 25.45-b02 on 1.8.0_45-b14 +jit [linux-amd64]
  • Java version "1.8.0_45" Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
  • julia version 0.4.3
  • clang version 3.5-1ubuntu1 (trunk) (based on LLVM 3.5)
  • Mono JIT compiler version 4.0.1 (tarball Tue May 12 15:39:23 UTC 2015)
  • rock 0.9.10-head codename sapphire, built on Wed Jul 1 20:09:58 2015
  • Felix version 15.04.03
  • Q KDB+ 3.3 2015.09.02 Copyright (C) 1993-2015 Kx Systems
  • perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi
  • The Glorious Glasgow Haskell Compilation System, version 7.10.2
  • Tcl 8.6
  • jq version 1.3
  • Swift version 2.2-dev (LLVM ae2eb212e4, Clang ef4c02f431, Swift 634acb40a1)
  • Kotlin version 1.0.3 (JRE 1.8.0_45-b14)
  • PHP 7.0.9-1+deb.sury.org~trusty+1 (cli) ( NTS )
  • .Net Core 1.0.0-preview2-003121

Havlak loop finder
LanguageTime, sMemory, MiB
Crystal15.46443.2
Nim Gcc16.59484.3
Nim Clang16.91477.9
C++17.72174.5
D Ldc25.15214.9
D28.90418.2
Go31.26349.9
D Gdc31.79197.6
Scala32.18363.0
Go Gcc32.94365.7
C# Mono40.54270.0
Python Pypy45.51625.9
C# .Net Core61.38388.8
Python396.54724.0

Matrix multiplication
LanguageTime, sMemory, MiB
Julia Native Thr0.11148.3
Julia Native0.31175.8
D Mir GLAS0.3256.7
D Ldc2.0168.9
D2.3071.3
D Gdc2.3373.0
Python Numpy3.0865.3
Java3.50136.2
Scala3.62136.2
Kotlin3.62132.2
C3.6469.2
Nim Clang3.73142.3
Rust3.7476.9
Nim Gcc3.82146.0
Go3.8373.5
Crystal3.8573.9
Go Gcc3.9084.5
Swift4.48110.8
Javascript Node5.9588.3
Javascript V86.8781.5
Python Pypy7.68122.6
C# .Net Core10.8785.7
C# Mono15.1783.6
Julia20.98187.4
Ruby Topaz81.41206.2
Ruby338.4082.8
Python447.3974.0
Ruby JRuby416.12582.4
Ruby JRuby9k467.59608.3
Ruby Rbx591.70325.0
Perl666.46604.1
Tcl1066.66279.9

JSON parse
LanguageTime, sMemory, MiB
D Gdc Fast0.34226.7
C++ Rapid SAX0.721.0
Rust Pull0.78207.9
Rust Struct0.79232.5
C++ Gason0.83582.2
C++ Rapid0.94243.6
Java1.47621.2
Crystal Schema1.93331.2
Rust Value2.511967.0
Perl XS2.68888.4
Crystal3.001115.2
Javascript Node3.21863.7
Crystal Pull3.301.6
Nim Clang4.121089.6
Python3 ujson4.151303.2
Nim Gcc4.461090.1
Python Pypy4.811553.0
Python ujson5.071352.9
Q5.18684.0
Go5.21479.3
C++ LibJson5.492796.3
Clojure5.811148.5
Python35.821037.8
C# .Net Core6.31834.9
Php6.371502.0
Ruby YAJL8.231085.5
Haskell8.3170.5
Python9.851409.1
C# Mono10.57812.1
Julia11.892622.4
D12.421417.1
Ruby12.672013.9
JQ14.921714.5
Scala15.471415.8
C++ Boost16.442915.2
Ruby JRuby9K16.532050.5
Go Gcc17.64473.1
Ruby JRuby21.982761.1
D Gdc25.86926.1
D Ldc27.23919.6
Perl46.021635.4
Ruby Rbx67.134681.0

Base64 encode and decode

LanguageTime, sMemory, MiB
C aklomp SSSE30.9332.3
C1.8532.2
Crystal2.3085.0
D Gdc2.5233.3
Ruby2.73125.3
D Ldc3.1453.1
Perl XS3.6347.9
Rust3.6442.9
Ruby Rbx4.2930.7
Nim Gcc4.6252.7
Nim Clang4.7052.7
Julia4.41190.0
Javascript Node4.76551.5
C++ Openssl5.4565.2
Php6.3453.4
C# .Net Core6.52121.1
D7.1855.3
Tcl7.2066.0
Python Pypy7.32582.3
Python7.6252.6
Go8.0070.0
Python38.1354.5
C# Mono9.0171.7
Java9.06971.2
Kotlin9.75932.9
Scala10.69292.5
Ruby JRuby9K12.16530.6
Ruby JRuby12.65514.9
Perl33.3099.7
Go Gcc39.56185.5
Mandelbrot in Brainfuck
LanguageTime, sMemory, MiB
C++ Gcc20.491.7
Crystal23.131.5
D Ldc24.901.4
Rust25.194.9
D Gdc29.492.4
Nim Gcc31.042.7
Nim Clang37.392.9
Go Gcc37.5911.4
Kotlin40.7934.9
Scala58.51120.12
Java58.86423.9
D Dmd62.691.7
Javascript Node88.3418.6
Go102.852.2
Python Pypy126.4778.9
C# .Net Core142.3017.8
C# Mono147.6912.6
Ruby Topaz305.7938.8

Brainfuck interpreter
LanguageTime, sMemory, MiB
Kotlin1.7828.4
C++ Gcc1.941.0
D Ldc2.020.9
Rust2.494.9
Nim Gcc2.560.7
D Gdc3.051.4
Nim Clang3.090.8
Scala3.43120.12
Crystal3.461.3
Java4.03513.8
Go Gcc4.2010.0
D Dmd5.231.0
Go5.360.9
Javascript V86.537.9
Javascript Node7.3816.9
C# .Net Core16.0316.9
C# Mono19.8614.6
Python Pypy20.6477.9
Ruby Topaz59.5336.5
Ruby Rbx120.3832.3
Ruby Jruby129.75267.6
Ruby Jruby9k134.18286.8
Ruby181.447.2
Python314.794.9
Python3412.135.5

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