Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved latency in Go's next version (1.8) #13

Open
ngrilly opened this issue Sep 15, 2016 · 3 comments
Open

Improved latency in Go's next version (1.8) #13

ngrilly opened this issue Sep 15, 2016 · 3 comments

Comments

@ngrilly
Copy link
Contributor

ngrilly commented Sep 15, 2016

Today, I reran the benchmark using Go current master branch (golang/go@78c4658).

Go's latency is now similar and even better than OCaml:

histogram

Here is the related issue: golang/go#16293.

And here is the commit fixing the latency: golang/go@cf4f1d0.

Please note that using valyala/fasthttp is not required anymore. The latency stays low even with the standard library package net/http.

I suggest we'll rerun the benchmark after Go 1.8 release in a few months, and update the results, and maybe README's conclusion:

Want to build low-latency, memory-intensive services in a GCed language? Use Go or OCaml (or Reason if you prefer the syntax).

:-)

@spion
Copy link
Owner

spion commented Sep 15, 2016

Sounds good. Though I have to say, the quicker rise of Go's latency as it approaches a high percentile is slightly concerning. Nevertheless I'll re-run the tests in a few months and re-investigate 😀

@ngrilly
Copy link
Contributor Author

ngrilly commented Sep 15, 2016

Though I have to say, the quicker rise of Go's latency as it approaches a high percentile is slightly concerning.

On the contrary, it's a good thing. It means that "stop the world pauses" are rare, and never last more than 15 ms. Outside of the "stop the world pauses", the latency is very low (around 1 or 2 ms). Moreover, the horizontal axis scale is not linear, which gives this feeling of a latency increasing suddenly.

@Carrotman42
Copy link

I'd love to see this updated for Go 1.10!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants