2010-11-06 66 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