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

我有下一个 golang 代码:


var c uint64;

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

当我运行它时,执行时间约为 26 秒。


但是对于下一个获得相同结果的代码:


c = 0

for {

    c++

    if c == 10000000000 {

       break

    }

}

执行时间约为 13 秒。这是为什么?


在 C++ 中,经过的时间是 0 秒。有什么建议可以提高 golang 的速度吗?


慕妹3242003
浏览 204回答 1
1回答

HUWWW

首先,您需要确保循环次数相同。将两个c变量声明为uint64. 否则,c可能会被声明为会溢出的 32 位整数。package mainfunc main() {&nbsp; &nbsp; var c uint64&nbsp; &nbsp; for c = 1; c <= 10000000000; c++ {&nbsp; &nbsp; }}定时:real&nbsp; &nbsp; 0m5.371suser&nbsp; &nbsp; 0m5.374ssys 0m0.000s和package mainfunc main() {&nbsp; &nbsp; var c uint64&nbsp; &nbsp; for {&nbsp; &nbsp; &nbsp; &nbsp; c++&nbsp; &nbsp; &nbsp; &nbsp; if c == 10000000000 {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}定时:real&nbsp; &nbsp; 0m5.443suser&nbsp; &nbsp; 0m5.442ssys 0m0.004sGo 时间是相等的。C++ 优化认识到循环是没有意义的,所以它不会执行它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go