4 ms·
At $work we are evaluating different IPC strategies in Rust. My colleague expanded upon 3tilley's work, they have updated benchmarks with iceoryx2 included here
by abhirag 2y ago
At $work we are evaluating different IPC strategies in Rust. My colleague expanded upon 3tilley's work, they have updated benchmarks with iceoryx2 included here[0]. I suppose the current release should perform even better.
[0]: https://pranitha.rs/posts/rust-ipc-ping-pong/ https://pranitha.rs/posts/rust-ipc-ping-pong/
- nh2 2y agoInteresting that on Linux Unix Domain Sockets are not faster than TCP. People often say that the TCP stack overhead is high but this benchmark does not confirm that.
- jcelerier 2y agoI'm curious about the benchmark. In my own for another network IPC library (https://GitHub.com/ossia/libossia https://GitHub.com/ossia/libossia) Unix sockets were consistently faster than the alternatives when sending the same payloads.
- billywhizz 2y agothe linux results are for a vm running on macos. not sure how useful that is. i certainly wouldn't draw any wider conclusions from them without trying to reproduce yourself. pretty sure they will be very different on bare metal.
- billywhizz 2y agoi couldn't resist reproducing on bare metal linux (8th gen core i5, ubuntu 22.04): cargo run --release -- -n 1000000 --method unixstream cargo run --release -- -n 1000000 --method tcp ~9μs/op for unixstream, ~14μs/op for TCP. unixstream utilizes two cores at ~78% each core, tcp only utilizes ~58% of each core. so there is also something wrong in the benchmarks where blocking is happening and cores are not being fully utilized.
- pranitha_m 2y agoOur prod env is comprised of cloud VMs so tried to replicate that. Have some benchmarks from prod env, will share those.
- hardwaresofton 2y agoExcellent writeup! I performed just about the same test, but I didn't see 13M rps in my testing, shared memory went up to about 1M. That said, I made sure to include serialization/deserialization (and JSON at that) to see what a realistic workload might be like.
- pranitha_m 2y agoThanks! I am updating the benchmarks to take into account the different payload sizes as we speak, maybe we can discuss the difference in our methodologies and results then? I'll drop you a mail once updated.
- elBoberido 2y agoSweet. Can we link to your benchmark from the main iceoryx2 readme?
- pranitha_m 2y agoAlright, I am updating the benchmarks for the newest release, I'll open a PR once done.
- elBoberido 2y agoThanks, really appreciate it.