Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提高java.net.ServerSocket和java.net.Socket的效率?_Java_Sockets_Performance - Fatal编程技术网

如何提高java.net.ServerSocket和java.net.Socket的效率?

如何提高java.net.ServerSocket和java.net.Socket的效率?,java,sockets,performance,Java,Sockets,Performance,我想知道java.net.ServerSocket和java.net.Socket在每秒请求中的限制是什么。我编写了一些简单的测试代码(也是多线程的),并在我的机器上找到了每秒1200个请求的限制(在双核处理器、64位linux和32位windows上进行测试) java有没有办法提高每秒几千次的比率?JVM开销是大到几千的比率吗 我想提到的是,我意识到java在这部分代码中使用本机代码,并且测试依赖于操作系统(配置和实现)。如果不看代码,很难说 一方面,应用程序可能会做一些事情,使网络I/O(

我想知道java.net.ServerSocket和java.net.Socket在每秒请求中的限制是什么。我编写了一些简单的测试代码(也是多线程的),并在我的机器上找到了每秒1200个请求的限制(在双核处理器、64位linux和32位windows上进行测试)

java有没有办法提高每秒几千次的比率?JVM开销是大到几千的比率吗


我想提到的是,我意识到java在这部分代码中使用本机代码,并且测试依赖于操作系统(配置和实现)。

如果不看代码,很难说

一方面,应用程序可能会做一些事情,使网络I/O(实际上是所有I/O)变慢。例如,每次读取或写入一个非缓冲流/读取器一个字节。也可能有很多线程切换正在进行。或者您应该使用NIO来获得更好的吞吐量

另一方面,缓慢可能是由于高网络延迟、低网络带宽或拥塞。。。或者不是特别好的操作系统网络堆栈


或者它可能是其他东西。

不看代码很难说

一方面,应用程序可能会做一些事情,使网络I/O(实际上是所有I/O)变慢。例如,每次读取或写入一个非缓冲流/读取器一个字节。也可能有很多线程切换正在进行。或者您应该使用NIO来获得更好的吞吐量

另一方面,缓慢可能是由于高网络延迟、低网络带宽或拥塞。。。或者不是特别好的操作系统网络堆栈


或者它可能是其他东西。

通过循环,您应该能够实现每秒高达50K的请求(假设请求很小),我建议您尝试一下,看看它对您的机器有什么好处。正如@Stephen C所建议的,其他因素,如请求的作用和网络特征,将产生更大的差异。

通过循环,您应该能够每秒实现多达50K个请求(假设请求很小),我建议您尝试一下,看看它对您的机器有什么好处。正如@Stephen C所建议的,其他因素,如请求的作用和网络特征,将产生更大的差异。

+1。十年前,我每秒收到1000个请求。你一定做错了什么。ServerSocket与此无关:您所要做的就是接受连接并启动线程。当然,如果在accept()循环中有excss baggage,那么它会减慢一切。请接电话+1。十年前,我每秒收到1000个请求。你一定做错了什么。ServerSocket与此无关:您所要做的就是接受连接并启动线程。当然,如果在accept()循环中有excss baggage,那么它会减慢一切。密码。