Beginner's Comparison Benchmark
RegeleIONESCU
regeleionescu at gmail.com
Tue May 5 20:07:54 UTC 2020
Hello!
I made a little test(counting to 1 billion by adding 1)to compare
execution speed of a small counting for loop in C, D, Julia and
Python.
=========================================================================================
The C version: |The D version: |The Julia version:
|The Python Version
#include<stdio.h> |import std.stdio; |function counter()
|def counter():
int a=0; |int main(){ | z = 0 |
z = 0
int main(){ |int a = 0; | for i=1:bil |
for i in range(1, bil):
int i; |for(int i=0; i<=bil; | z=z+1 |
z=z+1
for(i=0; i<bil;i++){| i++){ | end | print(z)
a=a+1; | a=a+1; |print(z)
|counter()
} | } |end |
printf("%d", a); | write(a); |counter() |
} |return 0; | |
|} | |
=========================================================================================
Test Results without optimization:
C |DLANG |JULIA | Python
real 0m2,981s | real 0m3,051s | real 0m0,413s | real
2m19,501s
user 0m2,973s | user 0m2,975s | user 0m0,270s | user
2m18,095s
sys 0m0,001s | sys 0m0,006s | sys 0m0,181s | sys
0m0,033s
=========================================================================================
Test Results with optimization:
C - GCC -O3 |DLANG LDC2 --O3 |JULIA --optimize=3 | Python -O
real 0m0,002s | real 0m0,006s | real 0m0,408s | real
2m21,801s
user 0m0,001s | user 0m0,003s | user 0m0,269s | user
2m19,964s
sys 0m0,001s | sys 0m0,003s | sys 0m0,177s | sys
0m0,050s
=========================================================================================
=========================================================================================
bil is the shortcut for 1000000000
gcc 9.3.0
ldc2 1.21.0
python 3.8.2
julia 1.4.1
all on Ubuntu 20.04 - 64bit
Host CPU: k8-sse3
Unoptimized C and D are slow compared with Julia. Optimization
increases the execution speed very much for C and D but has
almost no effect on Julia.
Python, the slowest of all, when optimized, runs even slower :)))
Although I see some times are better than others, I do not really
know the difference between user and sys, I do not know which one
is the time the app run.
I am just a beginner, I am not a specialist. I made it just out
of curiosity. If there is any error in my method please let me
know.
More information about the Digitalmars-d-learn
mailing list