2 回答

TA贡献1848条经验 获得超2个赞
如果函数的定时生成时间小于纳秒,则通常意味着代码已优化。
编译器可以检测到某些代码没有副作用,并决定“我为什么要这样做”。
1/(1 ns) 是 1 Ghz。现代台式计算机的上限约为 5 Ghz,给予或接受。因此,要使其小于1 ns,操作加上获取时间的开销必须少于5个CPU周期。在这种分辨率下,CPU不会一次做一件事。指令的开始和结束可以间隔多个周期,操作是流水线的。
因此,您必须查看机器代码并了解体系结构,以确定实际成本是多少,包括CPU资源的哪些部分被使用,以及它将如何与您可能想要在附近执行的其他操作发生冲突。
因此,在大多数CPU上,即使是“之前”和“之后”在低于1ns的时间分辨率下也不再具有合理的意义,其速度足以在1 Ghz以上运行。

TA贡献1827条经验 获得超4个赞
你可以做的是回答“在这个东西至少需要一纳秒之前运行多少次”的问题:
package main
import (
"fmt"
"time"
)
func main() {
d := 1
for {
t := time.Now()
for e := d; e > 0; e-- {
fmt.Sprint("Hello, World!")
}
if time.Since(t) > 0 { break }
d *= 2
}
println(d)
}
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报