gpt4 book ai didi

python - 为什么Golang for loop比Python for loop要慢?

转载 作者:行者123 更新时间:2023-12-01 22:42:33 28 4
gpt4 key购买 nike

我已经测试了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)
}

最佳答案

您没有衡量自己的想法,这就是为什么您得到“令人惊讶”的结果。

您正在计时格式化和打印字符串需要多长时间,而不是“for循环有多快”。

此外,请记住,测量打印内容所花费的时间不仅取决于代码的编译/解释方式,还取决于打印的确切位置:I / O性能取决于程序之外的内容(也许操作系统,也许是一些物理设备等)。

最后,如果您尝试对绝对没有任何作用的循环的性能进行微基准测试,则编译器可以检测到这一点并完全优化循环,而无需进行任何测量...

在大多数情况下,孤立地使用这些微基准是没有用的。如果要在性能方面比较Python vs Go,通常最好是对一个实际问题进行测试,而不是人为地进行测试。然后,不仅要比较原始性能,还要比较一般代码质量的其他特征。

最重要的是,此基准有太多错误,无法得出任何有用的结论。

关于python - 为什么Golang for loop比Python for loop要慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62207047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com