Skip to content

Question: Clarification on Ping-Pong Benchmark Methodology #3

@Venkat2811

Description

@Venkat2811

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:

  1. The reported latency is nearly constant across a wide range of message sizes (e.g., ~1.25µs for both 64KB and 512KB).
  2. 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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions