golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
123.06k stars 17.55k forks source link

runtime: improve performance of runtime to match that of Evio #22714

Closed rjammala closed 6 years ago

rjammala commented 6 years ago

@crawshaw mentioned in Hacker news that the performance of Go can be improved to match that of Evio: https://github.com/tidwall/evio

Filing this issue for tracking purposes. Please close if this is not appropriate.

ianlancetaylor commented 6 years ago

I don't understand what action this issue will lead to. We are always trying to improve the performance of the runtime.

@crawshaw I couldn't find the Hacker News comment. Did you have a specific suggestion?

rjammala commented 6 years ago

@ianlancetaylor : Here is the full comment.

crawshaw 10 days ago [-]

One of my favorite things about Go is that it cuts through the "threads vs. events" debate by offering thread-style programming with event-style scaling using what you might call green threads (compiler assisted cooperative multitasking that has the programming semantics of preemptive multitasking). That is, I can write simple blocking code, and my server still scales. Using event loop programming in Go would take away one of my favorite things about the language, so I won't be using this. However I do appreciate the work, as it makes an excellent bug report against the Go runtime. It gives us a standard to hold the standard library's net package to.

thanm commented 6 years ago

Is this the full thread-- https://news.ycombinator.com/item?id=15624432 ?

bradfitz commented 6 years ago

As Ian said, we're always working to improve performance. If there's nothing concretely actionable here, let's close this bug.

rjammala commented 6 years ago

@thanm : Yes, that is the thread. @crawshaw : I am closing this bug. Please reopen if you think it is appropriate.

crawshaw commented 6 years ago

FWIW, I spent about an hour after writing that trying to extract a useful benchmark from evio, but couldn't get anything small and stable that was worth submitting to the net package. I don't think this needs an issue, just someone to sit down and try to write a piece of code that we know can be faster by X%.