有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢。学习吧测试发现golang的运行速度和Java差不多。
首先,使用各种语言编写同一个CPU密集的程序sum。
C(或C++)
#include <stdio.h>
#include <stdint.h>
#include <time.h>
int main(void){
int iN;
int64_t jN;
scanf("%d %ld",&iN,&jN);
time_t timeBegin=time(NULL);
int i;
for(i=0;i<iN;++i){
int64_t sum=0;
int64_t j;
for(j=0;j<jN;++j){
sum+=j;
}
printf("sum:%ld\n",sum);
}
time_t timeEnd=time(NULL);
printf("%ds\n",(int)(timeEnd-timeBegin));
return 0;
}
Golang
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
var sum int64 = 0
var j int64
for j = 0; j < 1000000000; j++ {
sum += j
}
fmt.Println("sum:", sum)
}
}
Java
package hello;
public class Hello {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
for (int i = 0; i < 10; ++i) {
long sum = 0;
for (long j = 0; j < 1000000000; ++j) {
sum += j;
}
System.out.println("sum:" + sum);
}
long endTime = System.currentTimeMillis();
System.out.println((endTime - startTime) / 1000.0 + "s");
}
}
Python
#!/usr/bin/env pypy
#coding:utf-8
for i in range(10):
s=sum(range(1000000000))
print('sum:%d'%s)
运行速度统计:
编程语言 第一次时间 第二次时间
C 6s 6s
Golang 6.327s 6.159s
Java 6.03s 5.981s
Python 15.860s 13.184s
结论,golang的运行速度和Java差不多,比Python快。