1
我正在使用套接字(TCP)来交换数据的开源软件包。在Linux上,它可以使用本地Unix套接字或远程套接字。当我将本地套接字的性能与远程本地环回的性能进行比较时,我发现Unix套接字速度要快50倍。其他一切都是相同的。我应该期望unix套接字比本地环回TCP快50倍吗?
这是性能差异预计,还是它表明代码中的某处出现错误?
在大多数情况下,数据交换是双向的,通常类似于一个字节的命令(uint8_t
),说明发生了什么,然后是一堆数据,通常大约1kb。
我可以通过禁用Nagle的算法来测试吗? – crobar
当然,也许你想在生产代码中这样做,但如果效率是一个主要问题,那么你应该尽可能地自己做缓冲或收集写作。 – EJP
谢谢,我会在下周测试,然后可能将其标记为答案。 – crobar