3 ms·
Monotonic and wall clock time in the Go time package
- deepsun 1y agoAnd not a word about fasttime.UnixTimestamp()? I thought that's the recommended way, it literally says: // It is faster than time.Now().Unix() https://pkg.go.dev/github.com/VictoriaMetrics/VictoriaMetrics/lib/fasttime#UnixTimestamp https://pkg.go.dev/github.com/VictoriaMetrics/VictoriaMetric...
- deepsun 1y agoWait, I see it's been removed actually [1]. Why, isn't it faster anymore? [1] https://github.com/VictoriaMetrics/VictoriaMetrics/commit/c2c6f97bd382ef78593414571dde28f8056c5bcf https://github.com/VictoriaMetrics/VictoriaMetrics/commit/c2...
- noselasd 1y agoIt's not removed, it's moved to a separate file as it's problematic to use in tests, commit 06c2631 talks about why.
- noselasd 1y agoIt's a bit specialized though, it's just a cached value of a time.NewTicker updating once per second and the article talks about this in the "Schedule Based on Monotonic Time" section
- kiitos 1y agoThis package spawns a goroutine that updates an atomic value every second based on a time.Time from a time.Ticker, and its functions load that atomic value. This is not really comparable to anything in package time in any useful way...
- jsw 1y agoFor simple high-frequency time deltas, I've found this function wins on the perf front: //go:linkname nanotime runtime.nanotime func nanotime() int64