在这个答案中,它提到:
人们还听说 X 使用“网络”并认为这将成为性能瓶颈。这里的“网络”是指本地 UNIX 域套接字,它在现代 Linux 上的开销可以忽略不计。在网络上会成为瓶颈的东西,有 X 扩展来加快速度(共享内存像素图、DRI 等)。进程中的线程不一定比 X 套接字快,因为瓶颈更多地与协调多个线程或进程访问同一硬件的固有问题有关,而不是与本地套接字的最小开销有关。
我不明白。我一直认为多线程通过共享变量进行通信应该比多进程通过 Unix 域套接字进行通信要快。所以……我错了吗?协调多个线程是一项耗时的工作吗?进程如何调度的顺序根本不会影响 Unix 域套接字的性能吗?
任何想法?请...
对不起,我没有把问题说清楚。我想问的是 IPC 效率而不是 X Window/Wayland 系统。
我只想知道为什么UNIX域套接字可以比共享内存快?AFAIK,共享内存是进程和线程之间最原始的通信方式,不是吗?所以 UNIX 域套接字应该建立在共享内存机制之上(伴随着适当的锁定)。为什么一个学生(即 Unix 域套接字)可以胜过他的老师(即共享内存)?