linux - 工控机性能: Named Pipe vs Socket

标签 linux performance sockets ipc named-pipes

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

最佳答案

使用 共享内存 解决方案可获得最佳效果。

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

通过 IPC benchmarking 获得结果:

  • 系统: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

关于linux - 工控机性能: Named Pipe vs Socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235958/

相关文章:

linux - 在 Linux 上更新 PyCharm

php - MySQL JSON 数据类型是否不利于数据检索的性能?

javascript - 使用node.js连接socket.io

linux - 如何在 jenkins 上的 ctest 超时时执行自定义命令

python - 使用 pexpect 从 Linux 终端的目录中删除多个文件

Python 性能——你是否曾经不得不用其他东西重写?

php - 带宽与数据库查询

python - 使用 sys.stdin 中的先前输入进行提示

php - Unix 套接字设置 O_NONBLOCK 以与 php-fpm get segmentfault 通信

linux - 如何查看当前正在运行的 cron 作业?