Quelltextlänge:
Code: Alles auswählen
-rw-r--r-- 1 xin xin 154 Feb 22 21:46 fib.g (Genesys)
-rw-rw-r-- 1 xin xin 156 Feb 24 21:36 fib.f (Forth)
-rw-rw-r-- 1 xin xin 158 Feb 24 21:36 fib.tcl (TCL)
-rw-rw-r-- 1 xin xin 165 Feb 22 21:35 fib.py (Python)
-rw-rw-r-- 1 xin xin 189 Feb 22 21:35 fib.php (PHP)
-rw-rw-r-- 1 xin xin 194 Feb 22 21:52 fib.c (C)
-rw-rw-r-- 1 xin xin 208 Feb 24 19:50 fib.rs (Rust)
-rw-r--r-- 1 xin xin 221 Feb 22 20:40 fib.pl (Perl)
-rw-rw-r-- 1 xin xin 297 Feb 22 21:56 fib.java (Java)
Code: Alles auswählen
GCC 6.2: ~0,012s Nativ Optimiert
Clang 3.8: ~0,014s Nativ Optimiert
Rust 1.10: ~0,015s Nativ Optimiert
GCC 6.2: ~0,021s Nativ
Clang 3.8: ~0,023s Nativ
Genesys: ~0,024s JIT
Rust 1.10: ~0,033s Nativ
Java: ~0,139s JIT
Forth: ~0,149s JIT
PHP 7.0: ~0,270s ByteCode
Python 2.7: ~0,570s ByteCode
Python 3.5: ~0,642s ByteCode
Perl 5.22: ~1,480s ByteCode
TCL: ~2,162s ByteCode
Genesys: ~5,720s AST
Ursprüngliches Posting
Ich mache für meine eigene Programmiersprache gerade ein paar Benchmarks, weswegen ich die Fibonacci-Zahlenreihe von 1-30 rekursiv berechne. Dabei habe ich zwei Ziele: Erstens will ich schnell sein. Hier verkacke ich total, was aber auch nicht verwunderlich ist, denn bisher konzentriere ich mich nicht auf Geschwindigkeit, sondern auf Syntax.
Daher meine Frage nach Implementationen von Fibonacci-Berechnungsprogrammen. Könnt ihr eine Programmiersprache, in der ihr das unten stehende C-Programm übersetzen könnt, die hier noch nicht aufgeführt ist? Vielleicht auch etwas ausgefallenere wie Haskell oder F# oder Scala?
Bei der Syntax liege ich bisher vorne: Programmlänge
Code: Alles auswählen
-rw-r--r-- 1 xin xin 154 Feb 22 21:46 fib.g
-rw-rw-r-- 1 xin xin 165 Feb 22 21:35 fib.py
-rw-rw-r-- 1 xin xin 189 Feb 22 21:35 fib.php
-rw-rw-r-- 1 xin xin 194 Feb 22 21:52 fib.c
-rw-r--r-- 1 xin xin 221 Feb 22 20:40 fib.pl
-rw-rw-r-- 1 xin xin 297 Feb 22 21:56 fib.java
Benchmark, der zweite: Laufzeit auf einem Xeon X5675
Code: Alles auswählen
GCC 6.2: ~0,02sek Nativ
Java: ~0,14sek Jit
PHP 7.0: ~0,27sek ByteCode
Python 2.7: ~0,56sek ByteCode
Python 3.5: ~0,65sek ByteCode
Perl 5.22: ~1,5sek ByteCode
Genesys: ~8,8sek AST
Folgendes Programm suche ich anderen Sprachen:
Code: Alles auswählen
#include <stdio.h>
int fib( int f )
{
if( f <= 2 )
return 1;
else
retunr fib( f-1 ) + fib( f-2 );
}
int main( void )
{
for( int value=1; value <= 30; value++ )
printf( "%d: %d\n", value, fib( value ));
return 0;
}