gpt4 book ai didi

JSP session 内存?

转载 作者:行者123 更新时间:2023-12-04 06:40:00 26 4
gpt4 key购买 nike

我需要证实一个理论。我正在学习 JSP/Java。

在查看了一个现有的应用程序(我没有写)之后,我注意到一些我认为导致我们的性能问题的东西。或者至少是其中的一部分。

它是这样工作的:

1)用户打开搜索页面。

2) 搜索页面(默认情况下)会显示所有行。其中 329,000 人。是的。 329K。进入一个 ArrayList。 ArrayList 中的每一项都是绑定(bind)到 DB 表的自定义 JavaBean。

3) 然后将 ArrayList 传递给 PaginateResultSet。

4) 然后将 PaginateResultSet (prs) (329k 行) 存储在 session 变量中:
session.setAttribute("resultSet", prs);

5) 每个额外的“下一页”然后从 getAttribute(“resultSet”) 中获取 20 行并发送到 Ext 数据网格。

好的,现在,我认为巨大的结果集存储在每个用户的每个线程的服务器内存中是错误的吗?因此,如果该结果集占用 20 兆内存,并且我们有 20 个并发用户,那么我们现在有 400 兆从服务器中取出?

在 session 属性中传递这么多数据不是一个坏主意吗?

感谢您的任何指示。

最佳答案

当然将整个 DB 表内容复制到 Java 内存中是个坏主意,更不用说在多用户环境中的用户 session 中了。

您需要在数据库级别进行分页,并仅将感兴趣的行存储在请求范围内。具体如何执行取决于 DB 接口(interface)和使用的 DB。如果您使用的是基本 JDBC,您可能会发现 this answer有用。对于核心 Hibernate 或 JPA,请参阅 this answer .

关于JSP session 内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com