It is really good to see Go's garbage collector claims backed up in the real world. In my experience GC pauses are a real problem, I hope this really works.
As a niggle, it's a shame when people report averaged latencies. Since latency is almost certainly not normally distributed averages are of little value. The percentiles are good.
This is interesting. I'm experiencing the opposite results for my long-tail latencies. Maybe it's to do with the way I have structured my system (too much reliance on the GC?), but switching to the Go 1.5 release in my testing has shown my 99th percentile latency to triple and my maximum latency across 1M requests jump 10x.
While I certainly don't have billions of requests per day, the millions of requests I do process are important and these results show that I need to do a bit more profiling to figure out what's going on inside...
Pretty sure both the Go team, and the rest of us, would love to hear the story on this once you've figured it out. (And hell, some of the Go team would probably like to hear it beforehand, and could help: have you posted on Go-Nuts or elsewhere?)
I agree. I'm going to try to narrow down what might be causing the issue by comparing a 1.4.2 profile and a 1.5 profile. Hopefully it'll be clear what changed and I can write a reproducible test case for it. Either way, I'll probably be posting to the mailing list soon.
4 comments
[ 3.2 ms ] story [ 9.1 ms ] threadAs a niggle, it's a shame when people report averaged latencies. Since latency is almost certainly not normally distributed averages are of little value. The percentiles are good.
While I certainly don't have billions of requests per day, the millions of requests I do process are important and these results show that I need to do a bit more profiling to figure out what's going on inside...