专否 写文章

黄太龙

Jan 19, 2024
Follow

python vs. pypy vs. go语言的计算性能的比拼

go语言不考虑并行计算的情况下,仅用go语言的同步的加法运算,和python相比,包含pypy运行python比拼。

go语言程序:

package main

import (
    "fmt"
    "time"
)

func main() {
  t1 := time.Now().UnixNano() / 1e6
  s := 0
  for i:=0; i<100000000; i++ {
      s += i
  }
  t2 := time.Now().UnixNano() / 1e6
  delta_t := t2 - t1
  fmt.Println( s )
  fmt.Println( delta_t )
}

python脚本如下:

import time

t1 = time.time()
s = 0
for i in range(100000000):
    s += i
t2 = time.time()
delta_t = t2 - t1
delta_t = delta_t * 1000

print(s)
print(delta_t)

python需要的运算时间:16567ms
pypy需要运算的时间:200ms
go需要运算的时间:38ms

pypy大概是python的80多倍;
go大概是pypy5倍;
go大概是python的400多倍。

以上性能倍数仅是加法运算场景,脱离场景谈性能并不客观。

喜欢这个文章 | 分享 | 新建跟帖