2 回答

TA貢獻1848條經驗 獲得超2個贊
如果函數的定時生成時間小于納秒,則通常意味著代碼已優化。
編譯器可以檢測到某些代碼沒有副作用,并決定“我為什么要這樣做”。
1/(1 ns) 是 1 Ghz?,F代臺式計算機的上限約為 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 關注
- 111 瀏覽
添加回答
舉報