Java对象在Tomcat会话中占用太多空间(旧版代码)

时间:2014-08-27 11:57:36

标签: java session tomcat memory tomcat6

我正在维护在Tomcat6上运行的遗留GUI应用程序,在某些情况下,当用户登录时,应用程序会将大量java对象加载到会话中,并且需要大量内存(最多200MB)。 我安装了psi-probe来监控内存,它显示了这个:

当前内存使用率为99.3%

免费:3.41 MB总计:487.25 MB最大值:487.25 MB

我想避免触及对象本身的结构,因为它也是一个复杂的怪物,我可能会破坏一些东西。 我真的不知道我有什么选择。我正在考虑尝试将其序列化并将其作为文件写入驱动器并根据需要访问它。

有什么想法吗?

干杯。

1 个答案:

答案 0 :(得分:0)

如果您不想将大对象加载到会话中, 您需要将占位符加载到会话中,然后使用占位符来访问对象或对象中的数据。

一种技术是在数据库中创建一个或多个行,这些行包含与大对象中相同的数据, 将密钥存储到会话中的行(或行), 然后使用密钥访问数据。 这样可以避免使用大对象。