Zero-Copy (Shared-Memory IPC)
零拷贝AdvancedPassing large data between processes by sharing a memory location instead of copying the content.
Zero-copy refers to inter-process communication (IPC) in which the sender writes data directly into a block of shared memory that both sides can access, and the receiver gets only a reference to that memory rather than a fresh copy of it. On a robot, camera images, depth maps, and point clouds routinely run to tens or hundreds of megabytes per second; if every subscriber has to go through serialization plus a copy, CPU usage and latency both climb noticeably. Eclipse iceoryx is middleware built specifically for this; ROS 2 achieves zero-copy through loaned messages combined with iceoryx or Fast DDS's shared-memory transport, and within a single process, composable nodes can also use intra-process communication. The limitation is that it generally only works on a single machine, and works best when messages are a fixed size.
ExampleEnable Fast DDS shared-memory transport between a camera driver and a detection node in ROS 2, so 1080p images are no longer copied frame by frame, cutting end-to-end latency.
- Also called
- shared-memory communication, zero-copy communication
- Related
- Eclipse iceoryx · Composable Nodes (Components) & Intra-process Communication · Robot Operating System 2 · Data Distribution Service · Middleware · Control Latency
- Sources
- Eclipse iceoryx
Configure Zero Copy Loaned Messages (ROS 2 Documentation)