Servlet 中的流刷新 - 它是否提高了 tomcat 服务器端的性能



我正在研究一个使用 KXML2 序列化程序的 servlet。

我已经看到以前的开发人员经常调用flush()...除了将数据更快地发送到客户端之外,对实际的服务器和 Tomcat 有什么影响?

不使用刷新时,CPU 使用率/负载会更低吗?

我已经使用 VisualVM 进行了基准测试/分析,并看到我的代码在没有刷新的情况下运行得更快。

最后,我应该担心的利弊...

除了将数据更快地发送到客户端之外,对实际的服务器和 Tomcat 有什么影响?

这让他们做更多的工作。

不使用刷新时,CPU 使用率/负载会更低吗?

稍微,是的。flush() 本身会消耗 CPU 周期,并且还可能造成网络延迟。真的没有多大意义,因为无论如何,客户端在获得完整响应之前无法做太多事情。如果响应不是分块或固定长度的,Tomcat 无论如何都必须缓冲它以获得 Content-length: 无论如何在发送之前,在这种情况下没有任何优势。

相关内容

  • 没有找到相关文章

最新更新