您的位置 首页 golang

golang java python这三种语言做计算密集型任务的性能比较

golang Java python这三种编程语言做计算密集型任务的性能比较

运行环境:笔记本电脑,cpu:intel i5-3230M@2.6G,windows7 64

1、golang

package main
import (
 "fmt"
 "math/rand"
 "time"
)
func main() {
 r := RandInt(10, 13) //产生范围内随机数,防止编译器优化
 fmt.Println(r, time.Now().UnixNano())
 t := time.Now().UnixNano()
 sum := 0
 for i := 0; i <= 40000+r; i++ {
 for j := 0; j <= 40000; j++ {
 sum = sum + i*j
 }
 }
 i := float64(time.Now().UnixNano()-t) / (1000000 * 1000)
 fmt.Println(sum)
 fmt.Println(i)
}
func RandInt(min, max int) int {
 rand.Seed(time.Now().UnixNano())
 return rand.Intn(max-min) + min
}
 

运行结果:

go version
go version go1.9.4 windows/amd64
$ gohello.exe
11 1522927426457018900
640384062001320000
1.0776608
 

2、python3.5.2

import time
import random
sum =0
r =random.randint(10,13)
print(r)
t = time.time()
for i in range(40000+r):
 for j in range(40000):
 sum += i*j
print(sum)
print(time.time()-t)

 

运行结果:

$ python performance_test.py
12
640096001999880000
379.8369143009186

 

3、 java

import java.util.Random;
public class performance_test{
 public static void main(String args[]){
 Random rd = new Random();
 int r = rd.nextInt(3)+10;
 System.out.println(r);
 long t1 = System.currentTimeMillis();
 long sum =0;
 for (int i =0;i<=40000+r;i++){
 for (int j=0; j<=40000;j++){
 sum += i*j;
 }
 }
 System.out.println(sum);
 float a =(float)(System.currentTimeMillis()-t1)/1000;
 System.out.println("间隔时间:"+a + "秒");
 }
}

 

运行结果:

java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
javac -d . -encoding utf-8 performance_test.java
java performance_test
11
640384062001320000
间隔时间:0.994秒

 

结论:

python不出意料不适合做性能密集型的任务

而java的性能出人意料的好,golang的表现和java是同一层次的。

go vs. java:

go和java的区别主要在于内存消耗量,go的内存消耗量小 所以在高并发的时候go的优势不仅仅在于程序写法比较简洁(毕竟在程序语言层面就支持协程),而且在于内存优势。

附上一些Go的教程,适合刚入门级别看看,算是福利。关注头条号,私信回复“资料”获取。
 

文章来源:智云一二三科技

文章标题:golang java python这三种语言做计算密集型任务的性能比较

文章地址:https://www.zhihuclub.com/86929.shtml

关于作者: 智云科技

热门文章

发表评论

您的电子邮箱地址不会被公开。

网站地图