2010-11-06 115 views
2

我正在研究一個寫在海外的JSF應用程序,它有一些性能問題。JSF會話bean最佳實踐

我一直試圖理解爲什麼應用程序可能運行緩慢,並且發現每個支持bean都是會話作用域,而許多bean使用其他bean,所以它們很可能都被實例化了。

也許有40個後備豆,每個包含大約4000行代碼和大量移動部件。

有人可以確認或否認我的預感,在每個會話中的所有這些垃圾正在使應用程序呆滯?

+1

不要猜測。描述它。 – BalusC 2010-11-06 18:52:47

+0

我有。當用戶在網站上轉身時,我看到內存負載增加,並且加載類的數量增加,幾乎從不減少。我認爲把所有東西都放到你的會話賬戶裏,這個賬號就是這個 – mkoryak 2010-11-06 20:34:44

+0

你剛剛回答了你自己的問題。 – BalusC 2010-11-06 21:05:09

回答

2

我不認爲這可能是性能問題的原因。會話範圍的bean僅爲會話創建一次。所以後續請求不會創建這些bean的新實例。但是,使所有的bean會話範圍遠離良好實踐的原因! :-)

+0

通常我會嘗試只將「必需」的東西放入會話中,而不是所有可能的東西。它似乎是支持豆dont *不需要*是會話範圍,除非有很好的理由 – mkoryak 2010-11-06 18:03:32

+0

這是絕對正確的!這樣做是一種很好的做法,因爲您不會在會話中帶來不必要的狀態。但我不認爲將所有內容都放入會話中會導致性能問題。這只是不推薦,因爲應用程序變得非常「有狀態」,儘管它並不是真正需要的。 – chkal 2010-11-06 18:37:34