我正在查看一个使用KXML2序列化程序的servlet。
我已经看到以前的开发人员经常调用flush()
...除了将数据更快地发送到客户端,实际服务器和tomcat有什么影响?
不使用flush时,CPU使用率/负载会减少吗?
我使用VisualVM进行基准测试/分析,看到我的代码在没有刷新的情况下运行得更快。
最后,我应该担心的任何利弊...
答案 0 :(得分:1)
除了将数据发送到客户端更快,实际服务器和tomcat有什么影响?
这使他们做得更多。
不使用flush时,CPU使用率/负载会减少吗?
有点,是的。 flush()本身会耗费CPU周期,也可能造成网络延迟。确实没有多大意义,因为客户无论如何都要做出完整的反应才能做很多事情。如果响应没有分块或固定长度,Tomcat必须将其全部缓冲以获得Content-length:无论如何在发送之前,在这种情况下没有任何优势。