2012-06-03 41 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