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

如何提高golang在计数过程中的速度?

如何提高golang在计数过程中的速度?

Go
慕妹3242003 2021-09-10 09:54:31
我有下一个 golang 代码:var c uint64;for c = 1; c <=10000000000 ; c++ { }当我运行它时,执行时间约为 26 秒。但是对于下一个获得相同结果的代码:c = 0for {    c++    if c == 10000000000 {       break    }}执行时间约为 13 秒。这是为什么?在 C++ 中,经过的时间是 0 秒。有什么建议可以提高 golang 的速度吗?
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

首先,您需要确保循环次数相同。将两个c变量声明为uint64. 否则,c可能会被声明为会溢出的 32 位整数。


package main


func main() {

    var c uint64

    for c = 1; c <= 10000000000; c++ {

    }

}

定时:


real    0m5.371s

user    0m5.374s

sys 0m0.000s


package main


func main() {

    var c uint64

    for {

        c++

        if c == 10000000000 {

            break

        }

    }

}

定时:


real    0m5.443s

user    0m5.442s

sys 0m0.004s

Go 时间是相等的。


C++ 优化认识到循环是没有意义的,所以它不会执行它。


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

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