package main

import (
"fmt"
"time"
)

func main() {
    time1 := time.Now()
    f := 0
    g := 0
    h := 0
    for i := 0; i < 1000000; i++ {
        f += 1
        g += f*2 + (f*f) + (f*f*f*f*f)
        h += g*g*g + f*f
    }
    time2 := time.Now()
    second2 := time2.Sub(time1)
    fmt.Println(second2.Nanoseconds())
}
这将0打印为输出。我还添加了一些打印语句以增加IO时间,然后输出0
有人可以解释为什么会这样吗?
链接:https://play.golang.org/p/GUy9geJXBUA

最佳答案

这是因为您正在Go操场上跑步,那里time.Now()被冻结,并且始终返回Go发布公告的时间。 (您可以执行fmt.Println(time.Now())进行检查。)

关于go - 非平凡代码golang的执行时间为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63944406/

10-16 05:27