试图提高使用DynamicJasper生成xls报告的性能。在这个方向上有什么建议吗?

时间:2019-01-25 11:25:35

标签: java reporting xls dynamic-jasper

当前状态:

生成一个包含3个表的.xls文件,每个包含10万行x 3列的文件用时约24秒,并细分如下:

  • 构建JRXlsExporter-大约6秒
  • JRXlsExporter.exportReport()-约18秒

该代码在以下硬件上执行:i7 6核CPU,16GB RAM,SSD存储。 JVM的最大堆大小设置为4GB。

添加一个片段只是为了让您对如何添加多个表有一些了解。我正在使用内存中的数据源填充表。

DynamicReportBuilder drb = new DynamicReportBuilder();
...
DynamicReport subReport = this.createSubreport(report.getSubReports()[i]);
String dsName = String.valueOf(i);
drb.addConcatenatedReport(subReport, new ClassicLayoutManager(),
                    dsName, DJConstants.DATA_SOURCE_ORIGIN_PARAMETER,
                    DJConstants.DATA_SOURCE_TYPE_COLLECTION, false);
...

DynamicJasper版本:

  • 动态Jasper: 5.1.0
  • jasperreports: 6.3.0
  • dynamicjasper核心字体: 1.0

到目前为止,尝试了以下选项:

  • 玩过虚拟化:无虚拟化 JRSwapFileVirtualizer JRGzipVirtualizer JRFileVirtualizer 。最佳时间已使用 JRSwapFileVirtualizer (这是提供的统计信息使用的时间)进行注册
  • 尝试通过 com.jaspersoft.jasperserver.api.engine.jasperreports.util.SingleLineTextMeasurerFactory 更改 net.sf.jasperreports.text.measurer.factory [1],但找不到 SingleLineTextMeasurerFactory 的任何源代码。

[1] https://community.jaspersoft.com/wiki/how-modify-jasperreportsproperties-file-disable-multi-line-data-processing

0 个答案:

没有答案