:= time.NewTimer(2 * time.Second)
t := <-timer.C
diff := t.Sub(now) - 2*time.Second
fmt.Printf("time difference: %v\n", diff.Microseconds())
результат принта: ~ 0.5-1 мс. Я ожидал наносекунды
так это не таймер неточный, это ожидания разошлись с реальностью, нет?
0 же будет, если таймер отработает через 2 сек, то через 2 сек будет время на 2 секунды больше 🙂
чет не понял идеи. Я ожидал, что тут t будет равно now+2 секунды ровно. Ну +- наносекунды. А там милисекунды
https://go.dev/play/p/pNnuBz-R4_- time difference: 0
в go.dev симуляция времени, если я правильно помню
diff.Nanoseconds() time difference: 1068500
вот наносекунды
во-первых зачем в бенчмарке Logf?
у меня м1: от 1050 до 1500 XEON L5630 @ 2.13GHz от 200 до 1000
ну да. 200 мкс. Но это далеко не едицины нс
Забавно, что если поставить таймер 0 секунд, то разница будет ~50 микросекунд. И аналогично на коротких промежутках, типа 10 * time.Microsecond. Если поставить таймер на 20 секунд, то задержка будет около ~1 ms как и при 2 секундах.
Интересно, что успевает происходить за эти пару секунд
7113 членов чата постарели
Обсуждают сегодня