Hi All, I understand this issue has been discussed in the past, and I have seen a few comments from Ian and Russ Cox about this topic, but I could not arrive at a conclusion about how I can make the time.Ticker send me ticks at atleast close to the Ticker duration I specify. At the moment, I am seeing ticks being sent at way over the specified duration especially when I have sub-millisecond durations. With 1ms duration, the ticker seems to be quite close to the duration (maybe within +/-5%). I would be happier if it were within 1%, but I can handle that.
With 1 micro-second duration, the ticker sends ticks nearly 4 times slower than expected. Here is my sample code " ti := time.NewTicker(1 * time.Millisecond) start := time.Now() for i := 0; i < 1000; i++ { <-ti.C } fmt.Printf("elapsed time = %v\n", time.Since(start)) " The output is usually close to 1 second as expected (close to) when using 1ms duration. elapsed time = 1.000159338s My code for the microsecond test is : " ti := time.NewTicker(1 * time.Microsecond) start := time.Now() for i := 0; i < 1000000; i++ { <-ti.C } fmt.Printf("elapsed time = %v\n", time.Since(start)) " With this, I get the following output which shows the elapsed time close to 4 seconds : elapsed time = 4.796662856s *Is there anyway, I can ensure ticks are sent at approximately within 5% of my specified duration ?* I understand from time.Ticker docs that ticks will be lost if the ticker handler cannot keep up with the ticker time. In the simple code above, I am literally doing very minimal work in each loop iteration and that is about checking the loop condition. So I am not sure why ticks are being lost ? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/5f55ccf9-1478-4490-a8f4-a35a5764721dn%40googlegroups.com.