如何在 Boost.Asio 中使用零拷贝 sendmsg/Receive

How to use Zero-copy sendmsg/Receive in Boost.Asio

我正在使用 Boost.Asio, 我想通过使用零拷贝 sendmsg/Receive 来改进我的系统。 我可以在 Boost.Asio 中使用零拷贝 sendmsg/Receive 吗? 如果我可以使用它们,你能告诉我如何使用它们吗?

简短的回答,只有当您的内存中表示与在线表示相同时,您才可以。

请在此处查看答案,这些答案很好地描述了例如Cap'n Proto 做到了这一点:

同时比较:

  • TCP Zero copy using boost

以及创建高级 C++ 数据结构的内存可映射表示,以便它们可以在线映射: