如何在 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++ 数据结构的内存可映射表示,以便它们可以在线映射:
https://www.boost.org/doc/libs/1_72_0/doc/html/interprocess/managed_memory_segments.html#interprocess.managed_memory_segments.making_ipc_easy.managed_memory_segments_intro,特别是关于 basic_managed_heap_memory
和 basic_managed_external_buffer
我在这个站点上有大量示例,展示了如何使用此类托管内存段,但通常集中在 managed_mapped_file
和 managed_shared_memory
上,它们具有完全相同的功能集,因此您可以以相同的方式将它们与之前的托管堆段一起使用:https://whosebug.com/search?q=user%3A85371+interprocess+allocator
我正在使用 Boost.Asio, 我想通过使用零拷贝 sendmsg/Receive 来改进我的系统。 我可以在 Boost.Asio 中使用零拷贝 sendmsg/Receive 吗? 如果我可以使用它们,你能告诉我如何使用它们吗?
简短的回答,只有当您的内存中表示与在线表示相同时,您才可以。
请在此处查看答案,这些答案很好地描述了例如Cap'n Proto 做到了这一点:
同时比较:
- TCP Zero copy using boost
以及创建高级 C++ 数据结构的内存可映射表示,以便它们可以在线映射:
https://www.boost.org/doc/libs/1_72_0/doc/html/interprocess/managed_memory_segments.html#interprocess.managed_memory_segments.making_ipc_easy.managed_memory_segments_intro,特别是关于
basic_managed_heap_memory
和basic_managed_external_buffer
我在这个站点上有大量示例,展示了如何使用此类托管内存段,但通常集中在
managed_mapped_file
和managed_shared_memory
上,它们具有完全相同的功能集,因此您可以以相同的方式将它们与之前的托管堆段一起使用:https://whosebug.com/search?q=user%3A85371+interprocess+allocator