测试代码
- python
# -*-coding:utf-8 -*-
import time
t = time.time()
for i in range(10**8):
continue
print("循环耗费时间:{}".format(time.time() - t))
- golang
package main
import (
"fmt"
"math"
"time"
)
func main() {
start := time.Now().UnixNano()
num := int(math.Pow(10, 8))
// fmt.Printf("num type:%T\n", num)
for i := 0; i <= num; i++ {
continue
}
end := time.Now().UnixNano()
seconds := float64((end - start) / 1e6)
fmt.Println(seconds)
fmt.Printf("耗时 :%d 毫秒\n", int(seconds))
}
测试结果
- python2.7
python2因为xrange和range是分离的,所以使用range占用了大量的内存。
python2.7耗时:7秒 - python3
python3耗时:4秒 - pypy
pypy耗时:118毫秒 - golang
go耗时:39毫秒
对比结果
对于计算密集型程序:
pypy是python3的33倍
pypy是python2的59倍
go是pypy的3倍
web io密集型待做测试
- 阿里源装包
pypy3 -m pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com aliyun-log-python-sdk aliyun-log-cli -U --no-cache