【问题标题】:Optimal buffer size for JSP's and autoflush propertyJSP 和 autoflush 属性的最佳缓冲区大小
【发布时间】:2012-06-07 18:10:41
【问题描述】:

是否有人建议为 JSP 设置最佳缓冲区大小?您可以使用以下页面指令来设置 JSP 中的缓冲区大小

    <%@page buffer="xxxkb" autoFlush="true" %>

我的问题如下

  1. 我的理解是,您使用的缓冲区大小越小,客户端浏览器的性能越好。我的假设正确吗?如果你不这么认为,请解释

  2. 最佳缓冲区大小应该是多少

  3. 有没有办法知道默认缓冲区大小是多少?

  4. 将 autoflush 设置为 true 应在达到最大大小后刷新缓冲区。如果您将其设置为 false,则由您决定何时刷新

【问题讨论】:

  • 我根据缓冲区大小做了一些性能测试。看起来 5K 缓冲区大小的表现相当不错。我看到浏览器正在接收持续的响应流以供使用。这表明在浏览器上呈现明显更快的响应。

标签: jsp


【解决方案1】:

1.我的理解是,您使用的缓冲区大小越小,客户端浏览器的性能越好。我的假设正确吗?如果您不这么认为,请解释

回答:是的,实际上不是在性能方面。但在渲染内容方面。因为客户端会以更快的速度获取数据。缓冲区大小应大于或等于底层套接字缓冲区大小。否则,尽管当达到缓冲区大小时,jsp 会刷新,但实际上不会将其写入客户端。

2.最佳缓冲区大小应该是多少

答案:正如我上面所说,它应该大于或等于底层套接字缓冲区大小。最佳尺寸还取决于您的应用。它应该是这样一个值,一旦达到缓冲区大小,就会提交响应,并且您不能再执行导致添加响应头的操作。

3.有没有办法知道默认缓冲区大小是多少?

答案:是的,通过使用 JspWriter 类。 JspWriter 有一个 getter getBufferSize(),它为您提供缓冲区大小。 JspWriter可以通过pageContext.getOut()获取。

4. 将 autoflush 设置为 true 应在达到最大大小后刷新缓冲区。如果您将其设置为 false,则由您决定何时刷新

答案:如果设置为 true,则在达到最大缓冲区大小时将刷新。如果设置为false,则会抛出异常

【讨论】:

  • 但是我们怎么知道底层的套接字缓冲区大小呢?
  • @Cyber​​Rusher 迟到的答案,但今天才到这里。见stackoverflow.com/q/7865069/837154
  • 我知道这是旧的,但第一个答案是完全错误的。它说性能更好,但性能也不是更好。它说客户端以更快的速度获取数据,这显然是错误的。客户端接收数据的速率取决于服务器提供数据的速度以及它们之间的网络速度。唯一改变的是 latency,这是一个不同的概念。
猜你喜欢
  • 1970-01-01
  • 2014-08-22
  • 2012-02-06
  • 2010-12-05
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
相关资源
最近更新 更多