Hello,
First, thank you for this impressive high-performance IPC library. The reported latencies are excellent.
I've been studying your benches/bench.rs to understand the performance characteristics, and I have a question about the methodology used in the ping-pong benchmark.
I noticed two things:
- The reported latency is nearly constant across a wide range of message sizes (e.g., ~1.25µs for both 64KB and 512KB).
- Looking at the benchmark implementation, it appears the write operations use
write_empty_slice, which increments a pointer rather than writing the message payload, and the read operations use s.discard(), which seems to skip bytes rather than reading them from memory.
This leads me to believe that the benchmark is measuring the round-trip notification latency (the time to signal and coordinate the transfer) rather than the data transfer latency (the time to actually move the payload).
Could you please confirm if this understanding is correct? Is this intentional ?
If so, it might be helpful to clarify this in the benchmark's documentation to distinguish it from benchmarks that measure full data transfer.
Thanks,
Venkat
Hello,
First, thank you for this impressive high-performance IPC library. The reported latencies are excellent.
I've been studying your benches/bench.rs to understand the performance characteristics, and I have a question about the methodology used in the ping-pong benchmark.
I noticed two things:
write_empty_slice, which increments a pointer rather than writing the message payload, and the read operations uses.discard(), which seems to skip bytes rather than reading them from memory.This leads me to believe that the benchmark is measuring the round-trip notification latency (the time to signal and coordinate the transfer) rather than the data transfer latency (the time to actually move the payload).
Could you please confirm if this understanding is correct? Is this intentional ?
If so, it might be helpful to clarify this in the benchmark's documentation to distinguish it from benchmarks that measure full data transfer.
Thanks,
Venkat