【发布时间】:2020-06-05 02:16:50
【问题描述】:
我已经测试了 golang 在 for 循环上的执行情况
仅在 python 和 golang 中循环 50,000 次,我发现在 python 中需要 0.59 秒,而在 golang 中需要 9.12 秒
任何有经验的 Go 开发人员可以告诉我为什么 Golang 在 for 循环中太慢,而它是一种编译语言?
import (
"fmt"
"time"
)
func main() {
start := time.Now()
for i := 0; i < 50000; i++ {
fmt.Println("Index", i)
}
finish := time.Now().Sub(start).Seconds()
fmt.Printf("Elapsed time was %.2f seconds.\n", finish)
}
【问题讨论】:
-
如果循环 50k 次需要 9 秒,那么您的 golang 安装有问题。
-
您不是在计时“for 循环”(这很荒谬),而是在计时打印到标准输出(很可能是终端)的速度。
-
将时间写入 stderr 同时将标准输出传送到 /dev/null 会很有趣
-
我运行了这个程序,经过的时间是 0.12 秒。
-
我发现在我的 4 核 windows 机器上花了 9.12 秒,但在 8 核 Linux 机器上花了 0.59 秒
标签: python performance go interpreted-language compiled-language