Has a CPU shared-memory backend for rosidl::Buffer been explored?

While working on this feature, I noticed that pub/sub message delivery time increases roughly in proportion to the buffer size, even though the payload size is expected to remain constant when using specialized buffer backends.

I looked into it a bit and found that std::vector<uint8_t>(buffer_size) zero-initializes the entire buffer, effectively calling memset for buffer_size bytes. Since the buffer does not need to be initialized in this context, I submitted a patch to avoid both the extra memory allocation and the zero-initialization.