linux多进程管理ipc,linux下进程间通信IPC几种方式性能比较

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

1 socket

2 unixsocket

3 共享内存(share-memory)

4 管道(pipe)

5 消息队列(message-queue)

6 文件(file)

7 消息总线(比如zeromq)

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

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

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

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

由于 共享内存同步过程中使用的是sleep方法, 所以测试的结果可能有问题,所以,以下的排序中去掉共享内存,等之后采用信号量同步机制后,再进行比较。

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

1

zmq

2

file(no flush)

3

msgqueue

4

unixsocket

5

pipe

6

socket

7

file(flush)

8

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

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值