我在一个Web应用程序中工作,它使用JasperReports 5(jasperreports-5.0.1.jar),但在 java.lang.OutOfMemoryError 之前一直在泄漏内存,此应用程序生成10到100页之间的动态报告。

我正在使用MAT来了解发生的情况,如下面的图片所示,JasperReports保留内存:

直方图按包装分组:

直方图中的名称 Plantilla SubReport 是与我们使用JasperReports生成的报告相关的分类。

该Web应用程序在以下环境上运行:

-WebLogic 11克

-jrockit-jdk1.6.0_45-R28.2.7-4.1.0

-Xms2048m -Xmx2048m

-Oracle Linux

如果您遇到过类似的情况,请告诉我您的经验。

最佳答案

使用.jasper文件而不是.jrxml来填充报告,因为.jasper是编译格式和。 jrxml未编译,您尝试使用.jrxml填充报表的地方首先编译它,然后进行其余处理,这会导致更多的内存消耗

10-08 13:36