4 ms·
why do you need io_uring from Go? It has a nicer interface than epoll but you’re not coding to its interface.
by hnav 4y ago
why do you need io_uring from Go? It has a nicer interface than epoll but you’re not coding to its interface.
- klabb3 4y agoI don’t know enough to say for sure in this case, but if there’s one issue I have with Go performance, it’s the excessive syscall overhead for standard networking stuff. If you do high bandwidth or high concurrency you often waste a large fraction in syscalls, which can be reduced greatly in theory. For instance, socket deadlines have iirc 2 syscalls per timeout extension, which is sold as best practice for network timeouts.
- Matthias247 4y agowhy would one use socket deadlines in Go? In Go you would typically just use Context.Deadline or a select and timer mechanism to implement timeouts - and the runtime manages those via timers integrated into the runtime. Socket timeouts are for blocking IO, which Go doesn't use.