2012-06-03 37 views
13

有没有人有建议为JSP设置最佳缓冲区大小?您可以使用下面的页面指令来设置JSP的JSP和自动刷新属性的最佳缓冲区大小

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

我的问题缓冲区的大小有以下几种

  1. 我的理解是,您使用较少的缓冲区大小,性能更好客户端浏览器。我的假设是否正确?如果你认为否则,请解释

  2. 应该是什么最佳缓冲区大小

  3. 有没有办法知道什么是默认的缓冲区大小?

  4. 将autoflush设置为true应该在达到最大大小时刷新缓冲区。如果你把它设置为false,其高达你来决定何时刷新

+0

我做了一些基于缓冲区大小的性能测试。它看起来像5K缓冲区大小表现相当不错。我发现浏览器正在接收持续响应流。这显示了在浏览器上呈现明显更快的响应呈现。 – webjockey

回答

14

1.My的理解是,您使用较少的缓冲区大小,性能是客户端浏览器更好。我的假设是否正确?如果您认为不然,请解释

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

2.什么应该是最佳的缓冲器大小

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

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

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

4.将autoflush设置为true应该在达到最大大小时刷新缓冲区。如果你把它设置为false,其高达你来决定何时刷新

:如果设置为true,达到最大缓冲区大小时,它会刷新。如果设置为false,它会抛出一个异常

+0

但是我们怎么能知道底层的套接字缓冲区大小? – zenis

+1

@Cyber​​Rusher迟到的答案,但今天刚刚降落在这里。请参阅http://stackoverflow.com/q/7865069/837154 – orique