Skip to content

dkull/naive-language-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

naive-language-benchmark

Compare optimization capabilities of different compilers.

All the implementations will try to be as similarly naive as possible across all languages. Some testing of different integer types, etc. is done for performance.

Usually something like '-release -Ofast -flto -march=native' is used. Some A/B testing is done when choosing the subset.

Build system uses tup (https://gittup.org/tup/index.html)

Required compilers in $PATH:

	gcc
	clang
	dart
	rustc
	go
	gccgo
	nim
	zig
	ldc2
	v

And 'screenfetch' (optional for README.md)

Run to generate this README.md:

tup -j1

clang  nim   adler32      C8BE4A0C     594   0:00.59
gcc    c     adler32      c8be4a0c     N/A   0:00.60
gcc    nim   adler32      C8BE4A0C     632   0:00.63
gcc    v     adler32      c8be4a0c     N/A   0:00.65
clang  v     adler32      c8be4a0c     N/A   0:00.71
rustc  rust  adler32      c8be4a0c     N/A   0:00.71
       zig   adler32      c8be4a0c     N/A   0:00.81
clang  d     adler32      c8be4a0c     N/A   0:00.83
gcc    d     adler32      c8be4a0c     N/A   0:00.84
go     go    adler32      c8be4a0c     N/A   0:00.84
gccgo  go    adler32      c8be4a0c     N/A   0:00.85
       dart  adler32      c8be4a0c     N/A   0:00.91
clang  c     adler32      c8be4a0c     N/A   0:01.04

gcc    nim   millerrabin  183065       732   0:00.73
gcc    v     millerrabin  183065       N/A   0:00.73
clang  v     millerrabin  183065       N/A   0:00.76
gccgo  go    millerrabin  183065       N/A   0:00.76
gcc    d     millerrabin  183065       N/A   0:00.76
clang  d     millerrabin  183065       N/A   0:00.77
clang  nim   millerrabin  183065       769   0:00.77
go     go    millerrabin  183065       N/A   0:00.78
       zig   millerrabin  183065       N/A   0:00.78
rustc  rust  millerrabin  183065       N/A   0:00.80
       dart  millerrabin  183065       1000  0:01.00

gcc    nim   rc4          31875526832  429   0:00.42
clang  v     rc4          31875526832  465   0:00.46
gcc    v     rc4          31875526832  474   0:00.47
rustc  rust  rc4          31875526832  484   0:00.48
gcc    c     rc4          31875526832  501   0:00.50
       zig   rc4          31875526832  526   0:00.52
clang  d     rc4          31875526832  N/A   0:00.56
gcc    d     rc4          31875526832  N/A   0:00.57
gccgo  go    rc4          31875526832  600   0:00.61
clang  c     rc4          31875526832  724   0:00.72
clang  nim   rc4          31875526832  842   0:00.84
go     go    rc4          31875526832  1016  0:01.01
       dart  rc4          31875526832  1724  0:01.73

About

Comparing naive implementations in compiled languages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published