我应该期望unix socket比本地环回TCP快50倍吗?

时间:2017-08-18 22:20:02

标签: sockets unix-socket

我正在开发一个使用套接字(TCP)交换数据的开源软件包。在Linux上,它可以使用本地Unix套接字或远程套接字。当我将本地套接字的性能与远程本地环回进行比较时,我发现Unix套接字的速度提高了50倍。其他一切都是一样的。

这种性能差异是预期的,还是表示代码中某处出现错误?

在大多数情况下,数据交换是双向的,通常类似于一个字节的命令(uint8_t),说明发生了什么,然后是一堆数据,通常大约1kb。

1 个答案:

答案 0 :(得分:0)

如果您单独发送初始字节,您的协议几乎肯定会遇到Nagle算法。使用缓冲或writev()sendmsg()一次性发送。