←back to thread

257 points keepamovin | 1 comments | | HN request time: 0.261s | source
Show context
zh3 ◴[] No.44349227[source]
Seared into my soul is the experience porting a linux pipe-based application to Windows, thinking it's all posix and given it's all in memory the performance will be more or less the same. The performance was hideous, even after we found that having pipes waiting for a connection more or less ground windows to a halt.

Some years later this got revisited due to needing to use the same thing under C# on Win10 and while it was better it was still a major embarrassment how big the performance gap was.

replies(6): >>44349822 #>>44349883 #>>44349995 #>>44352604 #>>44354110 #>>44356780 #
asveikau ◴[] No.44349883[source]
Some years back Windows added AF_UNIX sockets, I wonder how those would perform relative to Win32 pipes. My guess is better.
replies(1): >>44351363 #
manwe150 ◴[] No.44351363[source]
Seems to reportedly be slightly faster in a few cases, but nothing particularly dramatic https://www.yanxurui.cc/posts/server/2023-11-28-benchmark-tc...
replies(1): >>44357347 #
1. asveikau ◴[] No.44357347[source]
Are we reading the same tables? It seems to be about 3x faster than named pipes, and marginally faster than local TCP.

It's worth noting that in Win32, an unnamed pipe is just a named pipe with the name discarded. So this "3x faster" is, I think, the exact comparison we're interested in.