当前位置:  开发笔记 > 编程语言 > 正文

JasperReport - 占用太多资源

如何解决《JasperReport-占用太多资源》经验,为你挑选了1个好方法。

所以,问题是我们在JasperReport Dialog中向用户创建的文档显示.用户可以按打印图标并将其发送到打印机.

在所有三个级别上,似乎在客户端的计算机上占用了太多资源:创建报告,在屏幕上显示报告并将其发送到打印机.一个示例PC是AMD Duron 800MHz,具有256MB RAM,因此我们需要了解是否可以进行一些优化以获得更好的用户体验.

它还需要在具有2GHz处理器和1GB RAM的"普通"计算机上占用大量资源,因此我需要查看是否有一个选项来调整JasperReport以减少对资源的影响.



1> 小智..:

过度使用子报告会增加报告的资源需求.每个子报表在填充时间内产生自己的线程.此外,如果您正在使用scriptlet或帮助程序类,请确保正确清理它们创建的所有资源.还要确保您使用的是最新的JR软件包.

一个说明.JR api包含一组虚拟器.填写报表时,整个填充的报表将创建为对象(JasperPrint).根据报表中的页数,此对象可能会变得非常大.可以将虚拟器配置为在达到设置的页面阈值时写入文件系统.

通常这会减少总体内存使用量,但会增加填充时间 一个包可能是gzip虚拟器,而不是写入文件系统,使用gzip压缩生成的对象.

以下是有关该主题的常见问题解答:http: //community.jaspersoft.com/wiki/support-large-reports

它所引用的例子可以通过下载JR源获得.

http://sourceforge.net/project/showfiles.php?group_id=36382&package_id=28579

从高级视图来看,如果您在应用程序中运行此报告,则可以实例化虚拟器(此处是列出已知实现类的接口):http: //jasperreports.sourceforge.net/api/net/sf/jasperreports/发动机/ JRVirtualizer.html

然后在填充时使用引用:

        JRDataSource ds = new JREmptyDataSource(10);
        JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp");
        JasperPrint jasperPrint = fillReport(fileName, ds, virtualizer);

如果您在iReport中,可以在选项 - >设置中配置虚拟器.

我希望这是有帮助的.

卢克

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有