首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用boost实现TCP零拷贝

使用boost实现TCP零拷贝
EN

Stack Overflow用户
提问于 2014-09-01 08:02:54
回答 1查看 2.3K关注 0票数 6

我正在尝试使用boost实现tcp零拷贝,但是我无法在google .My上找到任何问题,是否可以使用boost库执行零复制,如果可以,请给我发送一些示例或链接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-01 09:15:39

你可以看Yandex的BoostCon演讲:基于Boost.Asio的网络服务器的优化

我的直觉告诉我,他们( Yandex的人)过度设计了这个(相当多.)。我想说的是,基本的解决方案在于使用预先分配的固定缓冲区(可能是每个线程),并使用Asio中的MutableBufferSequence概念将它们粘合在一起。

这种方法被称为散聚,仅在Asio文档中简要描述。这里可能有一个相关的例子:examples.buffers

正如@Nim已经评论过的那样,Asio默认在“零拷贝”模式下工作(因为它从来没有拥有缓冲区,也没有为调用方分配)。所以要让它发挥作用应该是相当简单的。当然,内核/libc函数是否以零拷贝的方式实现完全取决于OS/平台。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25601331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档