IPC 性能:命名管道与套接字

2023-12-05

每个人似乎都说命名管道比套接字 IPC 更快。他们快了多少?我更喜欢使用套接字,因为它们可以进行双向通信并且非常灵活,但如果速度相当大,我会选择速度而不是灵活性。


您将获得的最佳结果共享内存解决方案。

命名管道仅比 16% 好TCP 套接字.

结果得到IPC 基准测试:

  • 系统:Linux(Linux ubuntu 4.4.0 x86_64 i7-6700K 4.00GHz)
  • 消息:128字节
  • 消息数:1000000

管道基准:

Message size:       128
Message count:      1000000
Total duration:     27367.454 ms
Average duration:   27.319 us
Minimum duration:   5.888 us
Maximum duration:   15763.712 us
Standard deviation: 26.664 us
Message rate:       36539 msg/s

FIFO(命名管道)基准:

Message size:       128
Message count:      1000000
Total duration:     38100.093 ms
Average duration:   38.025 us
Minimum duration:   6.656 us
Maximum duration:   27415.040 us
Standard deviation: 91.614 us
Message rate:       26246 msg/s

消息队列基准:

Message size:       128
Message count:      1000000
Total duration:     14723.159 ms
Average duration:   14.675 us
Minimum duration:   3.840 us
Maximum duration:   17437.184 us
Standard deviation: 53.615 us
Message rate:       67920 msg/s

共享内存基准:

Message size:       128
Message count:      1000000
Total duration:     261.650 ms
Average duration:   0.238 us
Minimum duration:   0.000 us
Maximum duration:   10092.032 us
Standard deviation: 22.095 us
Message rate:       3821893 msg/s

TCP 套接字基准测试:

Message size:       128
Message count:      1000000
Total duration:     44477.257 ms
Average duration:   44.391 us
Minimum duration:   11.520 us
Maximum duration:   15863.296 us
Standard deviation: 44.905 us
Message rate:       22483 msg/s

Unix 域套接字基准测试:

Message size:       128
Message count:      1000000
Total duration:     24579.846 ms
Average duration:   24.531 us
Minimum duration:   2.560 us
Maximum duration:   15932.928 us
Standard deviation: 37.854 us
Message rate:       40683 msg/s

ZeroMQ 基准测试:

Message size:       128
Message count:      1000000
Total duration:     64872.327 ms
Average duration:   64.808 us
Minimum duration:   23.552 us
Maximum duration:   16443.392 us
Standard deviation: 133.483 us
Message rate:       15414 msg/s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IPC 性能:命名管道与套接字 的相关文章

随机推荐

  • 使用通用 EventHandler<> 的事件在设计器中不可见

    我刚刚注意到 如果我使用通用事件处理程序将事件添加到我的 UserControl 则当我将用户控件添加到表单时 该事件在设计器中不可见 public event EventHandler
  • Flask请求:确定确切的路径,包括是否有问号

    有没有办法确定向服务器请求的路径 包括它是否包含问号 应用程序 from flask import Flask Response request def root return Response f full path request fu
  • 创建多个输出文件时将输出文件写入不同的目录

    我正在使用 fortran 95 我有一个非常类似于的问题访问主程序子目录中的文件 我遇到的另一个问题是 我使用以下命令循环创建文件 write fn fmt a i0 a degseqA filenumber dat open unit
  • C typedef 结构体指针

    我遇到过以下代码 typedef struct double x double y double z vector 这是有效的类型定义吗 代码编译并运行良好 我只是好奇这是否是常见做法 绝对有效 通常 您可以通过一起定义两种类型来充分利用这
  • 在 Windows 7 上使用外部程序时,git diff tmp 文件在 Windows 上无效

    我正在关注来自的文档Git配置页面并尝试将其应用到我的 Windows 7 环境中 当我运行 git diff file0 时 我在 P4Merge 中收到错误 Errors tmp cH9ccM file0 is or points to
  • 使用 EL 动态访问 Bean 属性

    我需要在 JSP 页面中使用 EL 访问其名称存储在变量中的 bean 的属性 如果我要访问名为 description 的属性 那么我会访问 bean description 但由于该属性的名称存储在变量 name 中 我不知道如何在 E
  • JavaMail 中的 HELO 名称无效

    使用 JavaMail 发送邮件时出现以下错误 这是不寻常的 因为它已经工作了一段时间 直到现在还没有做出任何改变 550 Access denied Invalid HELO name See RFC2821 4 1 1 1 com su
  • Jhipster / md-button 不是已知元素

    你好我正在使用 JHipster 4 0 1 我想将 Angular 2 材料集成到我的 home component 中 我做了 npm 安装材料 npm install angular2 核心 按钮
  • 意外的阴影和“已删除[符号]”

    如果您对以下代码求值两次 结果将会不同 谁能解释一下发生了什么事吗 findHull points Module Needs ComputationalGeometry ConvexHull points findHull RandomRe
  • 将 javascript 变量发送到 django 视图

    我正在 JavaScript 变量 例如 var url 中获取浏览器的当前 url 不断变化 我有一个 django 模型 Url 我想使用视图函数创建它的对象create url 早些时候当我使用表单时 我使用request POST
  • 如何从服务检查新的 android 6.0 权限

    我有一个 Android 6 0 应用程序 其未绑定的 Android 服务连接到 Google API 以接收 Fused API 位置提供商更新 为此 我需要 ACCESS FINE LOCATION 权限 一切都工作正常 直到更新到棉
  • WebSphere MQ 7.1 帮助需求 - 访问或安全性

    我想在 WebSphere MQ 服务器上创建一个队列管理器和一个队列 并且我想做两件事 1 使用 WMQ Explorer 从客户端访问队列管理器和队列 2 编写一个在客户端上运行的 Java 独立应用程序 并从队列中放入和接收消息 但是
  • 为画布上的矩形设置 zindex 不会将其置于前面

    我对画布和在其上绘制的矩形有疑问 他们以相反的创建顺序获得事件 最新的在顶部 而不是 zindex 的顺序 我已将 ItemsControl 与资源列表绑定 然后有一个画布作为项目面板
  • 是否有微数据标签来指定值是数字、字符串还是布尔值?

    有一个 HTML5 属性称为datetime指示值类型是日期时间 但我看不出有什么办法可以表明是否itemprop值在spantag 是字符串 布尔值或数字 我认为没有办法将此类信息包含在微观数据中 对吗 如果是这样 是否有某种原因应省略此
  • PHP解码json

    这里有人可以帮我用 php 解码 json 吗 我正在尝试解码 json api url 这是我现在所拥有的 string username someusername unconfirmed reward 0 08681793 send t
  • 通过 api/cli 启用和禁用 S3 复制规则

    我已在 S3 存储桶上设置了复制规则 以填充 preprod 存储桶以进行测试 这意味着我希望能够轻松地打开和关闭复制 并可能根据需要转储和刷新复制存储桶 我正在为此创建一个脚本 但很难找到一种在使用 AWS 控制台之外轻松打开和关闭复制规
  • TripleDES 加密和解密给出奇怪的结果

    我有一个有效的实施TripleDESCng 针对一些测试向量进行测试 但会发生以下情况 当我加密纯文本时This is a sample message 24 字节 因此这将是 3 个块 十六进制为546869732069732061207
  • DynamicJasper - 如何添加子报表作为列?

    Overview 我有一个 Java 类 其中有一个ArrayList必须打印到 jasperReport 作为子报表 我正在使用 DynamicJasper 库 关于这个问题的示例已被修改 因此可以复制 然而 实际情况的数据有所不同 Pr
  • 将单列分成 3 列,保留原始列 (R)

    我有一个独特的字符列 位于 DD HH MM 中 我试图将该列分成 3 个新的numeric列 我对单独函数的问题是它替换了原始列 并且我不知道如何传递多个条件SEP 请注意 并非每个观察结果都有 DD 我当前的代码如下所示 separat
  • IPC 性能:命名管道与套接字

    每个人似乎都说命名管道比套接字 IPC 更快 他们快了多少 我更喜欢使用套接字 因为它们可以进行双向通信并且非常灵活 但如果速度相当大 我会选择速度而不是灵活性 您将获得的最佳结果共享内存解决方案 命名管道仅比 16 好TCP 套接字 结果