Lil*_*ily 9 sockets ipc real-time pipe shared-memory
我正在尝试实现一个涉及不同模块的IPC的实时应用程序.这些模块正在进行一些数据密集型处理.我在原型中使用消息队列作为IPC的主干(Activemq),这很容易(考虑到我是一个完全的IPC新手),但它非常慢.
这是我的情况:
我一直在研究不同的IPC方法:套接字,管道,共享内存.但是,我没有IPC的经验,我绝对没有办法在3周内让这个演示失败......哪种IPC是安全的开始?
谢谢.百合
小智 5
我自己也面临着类似的问题。
我发现以下页面很有用-IPC性能:Windows上本地IPC的命名管道与套接字(特别是)和套接字与命名管道?。
听起来好像已经达成共识:如果您确实关心性能,那么共享内存是您的最佳选择,但是如果您当前使用的系统是一个消息队列,那么它可能是一个相当不同的结构。套接字和/或命名管道可能更易于实现,如果符合您的规范,就可以在这里完成。
共享内存解决方案将为您带来最佳结果。
最近,我遇到了相同的IPC基准测试。而且我认为我的结果对所有想比较IPC性能的人都会有用。
管道基准:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
消息队列基准:
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
Run Code Online (Sandbox Code Playgroud)
共享内存基准测试:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9833 次 |
| 最近记录: |