linux下进程间通信IPC⼏种⽅式性能⽐较
在项⽬中,经常会遇到单机上进程间的通信,常⽤的进程间通信⽅式⼀般有以下⼏种
1 socket
2 unixsocket
3 共享内存(share-memory)
4 管道(pipe)
5 消息队列(message-queue)
6 ⽂件(file)
7 消息总线(⽐如zeromq)
8 其他中间件(⽐如redis, memchache, 数据库等)
如果项⽬仅仅是消息的传递,对性能要求不⾼,则以上每种⽅式都可以实现进程间通信,我们可以选择较容易实现的⽅式来运⽤。
如果项⽬对消息传递性能要求很⾼,则我们可能会选⽤unixsocket,file,共享内存,或者socket等, 具体哪种⽅式是最快的,性能最好的,则可能不太清楚。
所以,近⽇针对项⽬需要⾼性能的进程间通信需求,对⼏种通信⽅式的性能进⾏了⽐较,结论如下:
性能综合排序结果为(从好到差)
1、共享内存
2、zmq
3、file(noflush)
4、msgqueue
5、unixsocket
6、pipe
7、socket
8、 file(flush)
进程通信方式测试⽅式为:把⼀定量的数据从服务器端发出,客户端进⾏接收,最后⽐较总耗时,并计算每秒能够处理的记录数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。