如何在 Boost.Asio 中使用零拷贝 sendmsg/Receive [关闭]

2024-03-18

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


简而言之,只有当您的内存中表示与在线表示相同时才可以。

请参阅此处的答案,它们很好地描述了如何例如Cap'n Proto 实现了这一目标:

  • 谷物和 Boost Serialization 是否使用零拷贝? https://stackoverflow.com/questions/41801826/do-cereal-and-boost-serialization-use-zero-copy

还比较一下:

  • 使用 boost 的 TCP 零复制 https://stackoverflow.com/questions/25601331/tcp-zero-copy-using-boost/25602502#25602502

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

  • https://www.boost.org/doc/libs/1_72_0/doc/html/interprocess/driven_memory_segments.html#interprocess.management_memory_segments.making_ipc_easy.driven_memory_segments_intro 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 and basic_managed_external_buffer

  • 我在这个网站上有无数的示例,它们展示了如何使用此类托管内存段,但通常侧重于managed_mapped_file and managed_shared_memory它们具有完全相同的功能集,因此您可以以相同的方式将它们与以前的托管堆段一起使用:https://stackoverflow.com/search?q=user%3A85371+进程间+分配器 https://stackoverflow.com/search?q=user%3A85371+interprocess+allocator

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Boost.Asio 中使用零拷贝 sendmsg/Receive [关闭] 的相关文章

随机推荐

  • 重载new和delete

    我尝试遵循这篇文章 http flipcode com archives How To Find Memory Leaks shtml http flipcode com archives How To Find Memory Leaks
  • 相对URL问题

    我将有多个文件夹 模块来访问常用文件 但访问它们对我来说似乎很重要 我确实通过这个链接来了解相对定位并设法解决了一些问题 但不是所有的 参考 php 中的相对 URL 路径 https stackoverflow com questions
  • IOS - 如果用户点击随机元素而不是背景,如何隐藏键盘?

    在我的应用程序中我有这样的东西 IBAction backgroundTouch id sender businessDescription resignFirstResponder self view endEditing YES 我不确
  • 如何使用 C# 读取 XML 元素的内容? [复制]

    这个问题在这里已经有答案了 可能的重复 解析 xml 文件的最佳实践 https stackoverflow com questions 55828 best practices to parse xml files 我希望能够在 XML
  • Spring WebFlux 创建无阻塞线程池

    我决定用 Java 重写我的 Web 应用程序 之前是用 Python 编写的 在我的应用程序中 我使用了无阻塞 I O 我有工作池 Celery Eventlet 线程 我在其中传递由数百个 API 调用组成的任务 现在我正在使用Spri
  • 如何使用 Process.Start 启动管道并重定向命令?

    我正在使用 System Diagnostics Process Start 在 Linux 操作系统上远程启动命令 到目前为止 我已经能够启动简单的命令 然后读取输出 例如我可以执行命令echo Hello World并阅读Hello W
  • 跨线程操作错误

    if listBox1 InvokeRequired listBox new StringBuilder this listBox1 Text 这是 c 中的代码 执行时会对 listBox1 产生无效的跨线程操作错误 listBox1 是
  • 透明背景上的 TKinter 按钮

    我试图了解如何将按钮应用到透明背景 同时保持其形状 当我生成下面的代码时 边框周围出现灰色背景 而且看起来也失去了形状 使用的颜色 侧边栏 2E3A4B 53 按钮 2C2F33 100 from tkinter import def bt
  • Laravel artisan cron 不工作

    我有一个页面在 beanstalked 中对电子邮件进行排队 该脚本按预期工作 当我有队列侦听器时 电子邮件会被触发 即 php artisan queue listen 但是当我删除侦听器并将其添加到 cron 作业时 usr bin p
  • 带有数字键的动态 json 对象

    我有一个 json 对象 在以下命令的帮助下将其转换为动态 C 对象this https stackoverflow com questions 3142495 deserialize json into c dynamic object
  • 如何获取 web.config appSettings 作为 ConfigurationSection 而不是 NameValueCollection

    ConfigurationManager AppSettings 属性 返回一个 NameValueCollection 对象 其中包含当前应用程序默认配置的 AppSettingsSection 对象的内容 但我需要 AppSetting
  • 如何检测 VPN 或代理连接? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想阻止所有使用 VPN 或代理服务器的连接 是否有办法检测是否正在使用 VPN 或代理连接 如果没有 我是否可以检查使用 VPN 或
  • iOS - 在关闭和滚动手势之间切换

    我正在尝试模仿 Line 通讯应用程序 日本事实上的通讯应用程序 中的一种行为 基本上 它们有一个模态视图控制器 内部有滚动视图 当滚动操作到达其内容的顶部时 视图控制器无缝切换到交互式解除动画 此外 当手势将视图返回到屏幕顶部时 控制权将
  • 最近的工具更新失败并出现依赖性错误后添加控制器

    由于安装 MVC3 的最新工具更新 通过 添加控制器 上下文菜单添加控制器通常会失败并出现以下错误 无法加载文件或程序集 Newtonsoft Json Version 3 5 0 0 Culture neutral PublicKeyTo
  • Ruby on Rails 表单:如何创建复选框表(或列表)

    在 Ruby on Rails 中创建一组相关复选框的最佳方法是什么 在 Turbogears 使用的 ToscaWidgets 库中 您可以执行以下操作 twf CheckBoxTable arbitrary numbers num co
  • 如何在 Python 中生成 HTML 单元测试输出?

    我正在寻找任何方法来在 HTML 摘要中显示 Python 单元测试的结果 对于 Java 和 Ruby 有这样的工具 尚未找到任何似乎可以为 Python 执行此操作的工具 那里有吗 JUnit HTML 输出 source ibm co
  • 使用 Nuxt/Vue 加载 D3

    我正在尝试在使用 Nuxt 构建的应用程序中实现 D3 我已成功将其导入到视图中
  • Rust:“无法移出‘self’,因为它是借用的”错误

    我正在尝试编写一个递归方法 将一个项目添加到树中并返回与该项目对应的树节点 enum BstNode Node int BstNode BstNode Leaf impl BstNode fn insert lt a gt a mut se
  • VB6杀死定时器

    我使用 VB6 进行编程 因为我们使用的是遗留代码和硬件 外部电子设备 我的程序是围绕计时器构建的 我将在操作系统编程中使用任务 计时器一直运行 直到其工作完成 设置一个标志并启动另一个计时器 我想要一个监督计时器来控制其他计时器当计时器没
  • 如何在 Boost.Asio 中使用零拷贝 sendmsg/Receive [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用Boost Asio 我想通过使用零拷贝发送消息 接收来改进我的系统 我可以在 Boost Asio 中使用零拷贝 send