【发布时间】:2010-12-07 20:09:06
【问题描述】:
我需要确认一个理论。我正在学习 JSP/Java。
查看现有应用程序(不是我写的)后,我注意到我认为导致我们的性能问题的一些东西。或者至少是其中的一部分。
它是这样工作的:
1) 用户打开搜索页面。
2) 搜索页面(默认情况下)会显示所有行。其中 329,000 人。是的。 329K。进入一个 ArrayList。 ArrayList 中的每一项都是绑定到 DB 表的自定义 JavaBean。
3) 然后将 ArrayList 传递给 PaginateResultSet。
4) PaginateResultSet (prs)(329k 行)然后存储在会话变量中: session.setAttribute("resultSet", prs);
5) 每个额外的“下一页”然后从 getAttribute("resultSet") 中获取 20 行并发送到 Ext 数据网格。
好的,现在,我认为每个用户的每个线程都将巨大的结果集存储在服务器的内存中是错误的吗?因此,如果该结果集占用 20 megs 的内存,并且我们有 20 个并发用户,那么我们现在有 400 megs 从服务器获取?
在会话属性中传递这么多数据不是一个坏主意吗?
感谢您的任何指点。
【问题讨论】:
标签: jsp performance session-variables