为了账号安全,请及时绑定邮箱和手机立即绑定

Go真的可以比Python快得多吗?

Go真的可以比Python快得多吗?

Go
红颜莎娜 2021-05-11 14:58:42
我认为我可能执行不正确,因为结果没有意义。我有一个Go程序,计数为1000000000:package mainimport (    "fmt")func main() {    for i := 0; i < 1000000000; i++ {}    fmt.Println("Done") }它在不到一秒钟的时间内完成。另一方面,我有一个Python脚本:x = 0while x < 1000000000:    x+=1print 'Done'几分钟即可完成。为什么Go版本这么快?他们俩都算上了10亿吗?还是我错过了什么?
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

10亿不是一个很大的数字。如果能够使用本机类型进行工作那么任何相当现代的机器最多都应该能够在几秒钟内完成此操作。我通过编写等效的C程序,读取程序集以确保它确实在进行加法并对其进行计时(在我的计算机上约1.8秒内完成)来验证这一点。

但是,Python没有本机类型变量(或根本没有有意义的类型注释)的概念,因此在这种情况下,它必须完成数百倍的工作。简而言之,您对标题问题的回答是“是”。去真的可以比Python的更快了,甚至没有任何一种编译器弄虚作假像优化掉无副作用环。


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信