皕杰报表之性能管理
admin
2024-03-07 04:54:21
0

1 报表缓存

当某个客户端访问某个报表,引擎将其计算出来后,会将运算结果缓存下来,之后如果再有别的客户端用相同的参数访问同一个报表,引擎会将缓存下来的报表结果直接返回给该客户端,而不会重新计算报表。

这种缓存方式在大用户并发的情况下可以大大的提高性能,缓解服务器的计算压力。同时,当同一个客户端访问完该报表后,如果需要对同一报表结果进行别的操作,例如打印、导出、翻页等,引擎也直接从缓存里取报表结果,而不必重新计算。

缓存报表的存储有两种方式:一、直接存到硬盘上 二、同时存到内存和硬盘,在内存中处于软引用状态。当内存够用时一直在内存中保持着,引擎需要的时候直接从内存中取,交互速度快,当内存不够时缓存被当成垃圾回收,引擎需要的时候从硬盘上读取。

皕杰报表还支持缓存组,即根据缓存的缓存时间不同,将报表分组缓存。

缓存组的设置方法:点击报表根格,选中报表,在右侧属性的缓存组属性中设置缓存组名称,该名称要与配置文件中节点的name属性保持一致,同时在该标签中可以对缓存中的最大对象数及缓存时间进行设置。可同时设置多个缓存组,即可以有多个节点,但节点的name属性值不能重复。

如果报表没有设置缓存组,则执行默认缓存时间。

2 并发控制

当报表引擎已经没有优化余地时,如果服务器资源依旧吃紧,可以控制应用服务器的并发数。不同的应用服务器,其并发数的控制机理会略有区别,具体的配置方法请参见服务器厂商提供的文档。

3 JVM内存

JVM堆栈内存是决定应用服务器性能的关键指标,由于JAVA的自动垃圾回收机制以及其屏蔽了指针的应用,导致了JAVA程序占用的内存总是比C语言程序占用的内存大,因此JAVA程序最常见的性能问题就是内存溢出, 当内存不够时,可以加大JVM堆栈内存,最大可以加到2G(32位的JVM)

4 按需取数

当报表数据量很大,结果报表格子数也很多的时候,如果报表的运算并不复杂,没有跨行组的运算,可以采用按页取数的办法,该办法可以从根本上缓解大报表的内存压力。

该办法的原理是:每次只取出一页数据进行报表运算,当翻页时取下一页数据进行运算,这样每次内存中只保留一页的数据,大大加快了运算速度,减轻了内存压力。

用户根据数据量的大小可以创建不同的报表类型,当数据量较少,可直接用“普通报表”,若数据量过大,有可能影响运行速度的话,可使用“行式报表”。

5 流式导出

“行式报表”解决了报表在浏览器上展示时的性能问题,但是当“行式报表”导出excel时,依然会遇到性能问题,可以采用把导出格式配置诚xlsx格式的方式来解决这个问题。

该方式的原理是:无论报表是否是“行式报表”,xls格式导出都是采用Java对象方式来操作Excel文件。而导出为xlsx格式则是根据报表类型不同而采用不同的技术手段,当报表为“行式报表”时,采用数据流的方式来操作Excel文件,否则采用Java对象的方式。

采用Java对象方式操作Excel文件,快,但是耗用内存多;采用数据流方式操作Excel文件,慢,但是耗用内存少。

相关内容

热门资讯

文班肘击改变系列赛走势 华子状... 西部半决赛G4,马刺和森林狼的博弈由于一次意外,突然生出了新的悬念。 次节战至8分39秒,文班亚马抢...
立讯精密或控股 京西国际开盘暴... 中经记者 陈佳岚 广州报道5月11日,京西国际(02339.HK)在香港联交所复牌,开盘股价报8.2...
收盘丨沪指涨超1%站上4200... 5月11日,四大股指集体收涨,沪指涨1.08%,站上4200点;深成指涨2.16%,创业板指涨3.5...
台达电公布2025年12月销售... 1月12日消息,台达电公布2025年12月销售额536.9亿元新台币,同比增长38.6%。(广角观察...
韩国综合股价指数开盘上涨1.2... 1月12日消息,日本股市今日休市一日。韩国综合股价指数(KOSPI)开盘报4639.89点,上涨1....
沪指突破4200点 沪指突破4... 5月11日,A股三大指数集体高开,上证指数高开0.51%突破4200点整数大关,创2015年7月初以...
中信证券煤炭行业2026年投资... 1月12日消息,中信证券发布煤炭行业2026年投资策略,2026年煤炭行业或将延续供需双弱的格局,但...
母亲节文案被中广协痛批低俗,O... 出品|拾盐士作者|科技互联网研究组5月10日母亲节当日,中国广告协会对OPPO母亲节文案“翻车”事件...
特朗普:将不会再有石油或资金流... 1月11日消息,美国总统特朗普11日在社交媒体上说,将不会再有石油或资金流入古巴,他还“强烈建议”古...
埃塞俄比亚启动建设非洲最大机场 1月11日消息,埃塞俄比亚总理阿比日前宣布启动比绍夫图国际机场的建设,该机场建成后将成为非洲最大航空...