我正在使用webapp,它使用JasperReports 5(jasperreports-5.0.1.jar),但是在 java.lang.OutOfMemoryError 之前泄漏内存,此应用程序生成10到100之间的dinamic报告页。
我正在使用MAT以了解正在发生的事情,正如您在下面的图片中看到的那样,JasperReports保留了内存:
按包分组的直方图:
直方图中的名称 Plantilla 和 SubReport 是与我们使用JasperReports生成的报告相关的分支。
此网络应用程序在以下环境中运行:
-WebLogic 11g
-jrockit-jdk1.6.0_45-R28.2.7-4.1.0
-Xms2048m -Xmx2048m
-Oracle Linux
如果你遇到过类似的事情,请告诉我你的实际情况。
答案 0 :(得分:1)
使用.jasper文件来填充报告,而不是.jrxml,因为.jasper是编译格式的。 jrxml没有编译,你尝试使用.jrxml填充报告,首先编译,然后进行其余的处理,这会导致更多的内存消耗