java - 再次执行操作约 4 次时,尝试从结果集大小约为 12000 行填充列表,jvm 耗尽堆内存

标签 java jakarta-ee struts2 heap-memory heap-size

我试图用大约 12000 条记录的数据库填充 tableList 类型的数组列表,然后使用 struts 迭代器标记填充我的 jsp 页面,但是在一次又一次执行此操作时,jvm 内存不足,如图所示对我来说,每次从页面调用此操作时,堆大小都会不断减少。我认为每当创建此操作类的新实例时,列表空间都不会被释放。建议解决此问题。我也在运行 tableList 。清除();在类的构造函数中

int records=0;
        spl("BEFORE: "+run.freeMemory()+"-"+run.totalMemory()+"-"+run.maxMemory());//spl is for system.out.println and run is an object of Runtime class
        while(resultSet.next())
        {
            records++;
            if(!resultSet.getString("service_date").equals("N/A"))
            {
                serviceYear=resultSet.getString("service_date").split("-");
                regnNumber=officeCode+"/"+resultSet.getString("serviceid_requested")+"/"+resultSet.getString("country_code")+"/"+resultSet.getString("service_file_srno")+"/"+serviceYear[2];
            }
            else
            {
                regnNumber=officeCode+"/"+resultSet.getString("serviceid_requested")+"/"+resultSet.getString("country_code")+"/"+resultSet.getString("service_file_srno")+"/0000";
            }
            tableList.add(new MISTable(regnNumber,resultSet.getString("given_name"),resultSet.getString("surname"),
                                        resultSet.getString("nationality"),resultSet.getString("service_date"),resultSet.getString("service_expiry_date"),
                                        resultSet.getString("passport_number"),resultSet.getString("passport_expiry_date"),resultSet.getString("visa_number"),
                                        resultSet.getString("visa_expiry_date"),resultSet.getString("visa_type"),"")
                                        );
        }
        spl("AFTER: "+run.freeMemory()+"-"+run.totalMemory()+"-"+run.maxMemory());

最佳答案

您可以增加运行应用程序的 java 内存参数。

-Xms256m -Xmx512m -XX:MaxPermSize=128m

您可以设置java的最大内存...

关于java - 再次执行操作约 4 次时,尝试从结果集大小约为 12000 行填充列表,jvm 耗尽堆内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13739966/

相关文章:

java - 使用 BorderLayout 将 JButton 放在屏幕中央

java - 如何从 Hibernate 5.2 中的带注释的类以编程方式生成数据库表

java - 关于struts2中的valuestack和stack的一些问题?

struts2 - 在 JSP 中访问操作实例变量和模型驱动的 bean 变量值

java - Maven 依赖插件添加名为目录的 Artifact

java - 双括号集合初始值设定项中的未定义构造函数错误

java - 控制 ManagedExecutorServices/Java EE 7 的线程数

java - 使用struts2创建包含表单和其他元素的jsp页面

java - 将逗号添加到十进制数

java - weblogic.descriptor.DescriptorException : Unmarshaller failed