我想知道每秒请求中java.net.ServerSocket和java.net.Socket的限制是什么。我写了一些简单的测试代码(也是多线程的),发现我的机器上每秒大约有1200个请求(在双核处理器,64位linux和32位Windows上进行测试)。
java是否有解决方案以每秒增加几千的比率? JVM开销是否大到几千?
我想提到的是,我意识到Java在这部分代码中使用了本机代码,并且测试依赖于OS(配置和实现)。
最佳答案
不查看您的代码就很难说。
一方面,您的应用程序可能会做一些事情,这会使网络I / O(实际上是所有I / O)变慢。例如,一次读取或写入一个无缓冲的流/读取器一个字节。还有可能正在进行许多线程切换。或者,也许您应该使用NIO来获得更好的吞吐量。
另一方面,速度缓慢可能是由于高网络延迟,低网络带宽或拥塞...或者不是特别好的OS网络堆栈。
或者可能是其他。