You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I have written a wrapper util on top of ipc_channel that handles the handshake, swapping channels between the host/child and adds a request/response API.
The performance on my M1 MBP was great, but I was surprised to find that the performance on Linux was significantly slower!
So I wrote a benchmark to test it out. The benchmark sends n requests, blocking on their responses (100k requests means 200k messages over the channel).
I'm not sure if it's my configuration, perhaps something else is interfering, however here are my results
Hardware
Windows: AMD 5950x - Windows 10
Linux: AMD 5950x - Fedora 39
MacOS: M1 Macbook Pro
Results
Platform
message count
duration
macos
10k
0.487s
windows
10k
0.356s
linux
10k
2.301s
macos
100k
1.550s
windows
100k
3.497s
linux
100k
13.608s
macos
1m
14.404s
windows
1m
34.769s
linux
1m
150.514s
Time taken for n round trip messages - Lower is better
I am have tried with/without the memfd option enabled and I have tried making this async (using tokio channels/threads) with the same outcome.
Hi, I have written a wrapper util on top of
ipc_channel
that handles the handshake, swapping channels between the host/child and adds a request/response API.The performance on my M1 MBP was great, but I was surprised to find that the performance on Linux was significantly slower!
So I wrote a benchmark to test it out. The benchmark sends n requests, blocking on their responses (100k requests means 200k messages over the channel).
I'm not sure if it's my configuration, perhaps something else is interfering, however here are my results
Hardware
Results
macos
0.487s
windows
0.356s
linux
2.301s
macos
1.550s
windows
3.497s
linux
13.608s
macos
14.404s
windows
34.769s
linux
150.514s
Time taken for n round trip messages - Lower is better
I am have tried with/without the
memfd
option enabled and I have tried making this async (using tokio channels/threads) with the same outcome.This is my wrapper (benchmarks are under
examples
)https://github.com/alshdavid/ipc-channel-adapter
To run the benchmark run
just bench {number_of_requests}
e.g.just bench 100000
I'm investigating if another dependency is interfering, will update with my findings - but at the surface, any idea why this might be?
The text was updated successfully, but these errors were encountered: