M
Size: a a a
M
AF
M
M
AF
M
M
AF
perf stat -r 3 ./main
[dlang ldc]
ldc2 -O3 -ffast-math -reroll-loops -flto=thin main.d
1,48002 +- 0,00453
ldc2 -O3 main.d
1,5083 +- 0,0148
gdc -Ofast -LTO -ffast-math -funroll-loops -march=native main.d -o main
10,3748 +- 0,0365 seconds time elapsed
gdc -O3 main.d -o main
12,3032 +- 0,0303
[crystal]
crystal build main.cr --release
11,3591 +- 0,0303
[rust]
lto = true
32,236s
without lto
13,103
[c and cpp o3 and ofast - similar]
[c]
gcc -O3 -ffast-math -funroll-loops -LTO -lm main.c -o main
6,6119
clang -O3 -ffast-math -freroll-loops -flto=thin main.c -o main
12,8160
[cpp]
g++ -O3 -ffast-math -funroll-loops -LTO -lm main.cpp -o main
6,6000
clang++ -O3 -ffast-math -freroll-loops -flto=thin main.cpp -o main
12,8419
[python pypy3]
time pypy3 main.py
59,331s
[python numba]
14,340s
[nim inline]
proc `^`*[T](x: T, y: Natural): T {.inline.} =
in
math.nim
nim c -d:release ./untitled.nim
10,515s
[nim]
2m47,514s
[gfortran]
gfortran -Ofast -LTO -ffast-math -funroll-loops -march=native -o main main.f
1,92337
gfortran -Ofast -LTO -ffast-math -funroll-loops -o main main.f
0m3,558s
gfortran -O3 -LTO -ffast-math -funroll-loops -march=native -o main main.f
0m12,571s
gfortran -O3 -o main main.f
0m13,550s
AF
M
M
M
AF
M
AF
M
M
AF
A
-O3