這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
// fibonacci.c#include <stdio.h>int main() { printf("%d", fibonacci(40));}int fibonacci(int n) { if (n < 2) { return 1; } return fibonacci(n - 2) + fibonacci(n - 1);}
編譯: CFLAGS="-march=corei7-avx -O2 -pipe" && gcc fibonacci.c
運行:time ./a.out
結果:165580141
real 0m0.977s
user 0m0.975s
sys 0m0.002s
// Fibonacci.javapublic class Fibonacci { public static void main(String[] args) { System.out.println(fibonacci(40)); } public static int fibonacci(int n) { if (n < 2) { return 1; } return fibonacci(n - 2) + fibonacci(n - 1); }}
編譯:javac Fibonacci.java
運行:time java Fibonacci
結果:165580141
real 0m0.681s
user 0m0.671s
sys 0m0.016s
// fibonacci.gopackage mainimport "fmt"func fibonacci(n int) int { if (n < 2) { return 1 } return fibonacci(n - 2) + fibonacci(n - 1)}func main() { fmt.Println(fibonacci(40))}
編譯:go build fibonacci.go
運行:time ./fibonacci
結果:165580141
real 0m1.175s
user 0m1.173s
sys 0m0.004s
從結果來看:效能 java > C > go 有點怪異哈。