如何提高java中大量短消息的套接字性能?

如何提高java中大量短消息的套接字性能?,java,sockets,Java,Sockets,我使用java.net.Socket和java.io.InputStream类JDK 8每秒接收大约10-50兆字节。 我的应用程序是从客户端接收数据的服务器 如果一个客户端为一个socket.write操作发送至少几千字节的数据,那么它工作得非常好。但是,当客户端尝试写入消息大小小于100字节的数据时,我每秒的数据量不超过5-10兆字节。我认为这与tcp延迟读取数据有关 有没有办法提高绩效?只需要接收数据。网络驱动程序可以缓冲输入吗?解决这个问题的唯一地方是发送端。它真的是一个单一的解决方案吗

我使用java.net.Socket和java.io.InputStream类JDK 8每秒接收大约10-50兆字节。 我的应用程序是从客户端接收数据的服务器

如果一个客户端为一个socket.write操作发送至少几千字节的数据,那么它工作得非常好。但是,当客户端尝试写入消息大小小于100字节的数据时,我每秒的数据量不超过5-10兆字节。我认为这与tcp延迟读取数据有关


有没有办法提高绩效?只需要接收数据。网络驱动程序可以缓冲输入吗?

解决这个问题的唯一地方是发送端。它真的是一个单一的解决方案吗?Tcp会在我读取数据之前阻止发送方吗?许多小数据包都会引入大量开销,包括头字节和将它们发送到接收方所需的所有交换机制。TCP应该自动延迟发送小数据包,让发送方有机会在数据包离开发送节点之前加载更多的数据包。我理解这一点,但在这种情况下,每条消息200字节的速度仍然很低。当我在同一台机器上运行客户端和服务器时,情况也是一样的。