linux下进程间通信IPC几种方式性能比较

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在项目中,经常会遇到单机上进程间的通信,常用的进程间通信方式一般有以下几种

1 socket

2 unixsocket

3 共享内存(share-memory)

4 管道(pipe)

5 消息队列(message-queue)

6 文件(file)

7 消息总线(比如zeromq)

8 其他中间件(比如redis,memchache,数据库等)

如果项目仅仅是消息的传递,对性能要求不高,则以上每种方式都可以实现进程间通信,我们可以选择较容易实现的方式来运用。

如果项目对消息传递性能要求很高,则我们可能会选用unixsocket,file,或者socket等,具体哪种方式是最快的,性能最好的,则可能不太清楚。

所以,近日针对项目需要高性能的进程间通信需求,对几种通信方式的性能进行了比较,结论如下:

性能综合排序结果为(从好到差)

1 z mq

2 f ile(no flush)

3 m sgqueue

4 u nixsocket

5 p ipe

6 s ocket

7 f ile(flush)

8 s hare-memory

测试方式为:把一定量的数据从服务器端发出,客户端进行接收,最后比较总耗时,并计算每秒能够处理的记录数。

具体的性能数据如下:

写:

相关文档
最新文档