Kor*_*icz 68
这是更多的设计的问题,比速度(共享内存是更快),域套接字是更明确的UNIX风格,做少了很多的问题.在事先知道的选择方面:
域套接字的优点
域套接字缺点
共享内存优势
共享内存的缺点
这就是我现在所能想到的.但是,我每天都会使用域套接字 - 更不用说重新实现它们来分布式计算要容易得多.由于需要安全设计,共享内存的速度增益将会丢失.但是,如果您确切知道自己正在做什么,并使用正确的内核调用,则可以使用共享内存实现更快的速度.
在我看来,@Kornel Kisielewicz 的答案很好。只是在这里添加我自己的套接字结果,而不仅仅是 Unix 域套接字。
共享内存
插座
在我的测试中,小块数据的交换(大约 1MB/秒)显示共享内存没有真正的优势。我什至会说使用 TCP 的 ping/pong 交换速度更快(由于简单而有效的信号机制)。但是,当交换大量数据(大约 200MB/秒)时,使用套接字的 CPU 消耗量为 20%,而使用共享内存的 CPU 消耗量为 3%。因此,就 CPU 而言,共享内存是一个巨大的胜利,因为read套接字write调用并不便宜。
两者都是进程间通信 (IPC) 机制。UNIX 域套接字用于一台主机上的进程之间的通信,类似于 TCP 套接字用于不同主机之间。共享内存 (SHM) 是一块内存,您可以在其中放置数据并在进程之间共享。SHM 通过使用指针为您提供随机访问,可以写入或读取套接字,但您不能倒带或进行定位。
| 归档时间: |
|
| 查看次数: |
21592 次 |
| 最近记录: |