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

时间:2013-09-09 20:17:27

标签: java tomcat stream flush

我正在查看一个使用KXML2序列化程序的servlet。

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

不使用flush时,CPU使用率/负载会减少吗?

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

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

1 个答案:

答案 0 :(得分:1)

  

除了将数据发送到客户端更快,实际服务器和tomcat有什么影响?

这使他们做得更多。

  

不使用flush时,CPU使用率/负载会减少吗?

有点,是的。 flush()本身会耗费CPU周期,也可能造成网络延迟。确实没有多大意义,因为客户无论如何都要做出完整的反应才能做很多事情。如果响应没有分块或固定长度,Tomcat必须将其全部缓冲以获得Content-length:无论如何在发送之前,在这种情况下没有任何优势。