这篇文章主要介绍了golang、java性能的对比,须要的朋友能够参考下!java
1.先说Go吧,由于我我的最近正在用,感受很不错c++
package main
import "fmt"
func main(){
fmt.Println(fibonacci(34))
}
func fibonacci(i int) int{
if(i<2){
return i;
}
return fibonacci(i-2) + fibonacci(i-1);
}
复制代码
先用 Go1.7看看:golang
复制代码bash
代码以下:性能
qiangjian@localhost:/works/learnCPP$ go version && time go build fib.go && time ./fib优化
go version go1.7.5 darwin/amd64real 0m0.206sui
user 0m0.165sspa
sys 0m0.059scode
real 0m0.052sci
user 0m0.045s
sys 0m0.004s
而后,再看看1.8的:
代码以下:
qiangjian@localhost:/works/learnCPP$ go18 version && time go18 build fib.go && time ./fib
go version go1.8 darwin/amd64real 0m0.204s
user 0m0.153s
sys 0m0.062s
real 0m0.051s
user 0m0.045s
sys 0m0.003s
感受看不出差别,但官方1.8在GC、Compile等方面优化提高了20%,多是这demo太简单了吧。
2.再来写Java,虽然它很火,感受太臃肿了
class Fib{
public static void main(String[] args){
System.out.println(fibonacci(34));
}
static int fibonacci( int i){
if(i<2) return i;
return fibonacci(i-2) + fibonacci(i-1);
}
}
复制代码
编译、运行的结果是:
qiangjian@localhost:/works/learnCPP$ java -version && time javac Fib.java && time java Fib
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
real 0m0.952s
user 0m1.302s
sys 0m0.144s
real 0m0.150s
user 0m0.123s
sys 0m0.025s
复制代码
性能还行, Compile时间和c++/go比就太low了。