报表性能优化方案之报表服务器优化基础讲解

一、内存

JVM堆栈内存是决定应用服务器性能的关键指标,一般服务器默认的内存配置都比较小,在较大型的应用项目中,这点内存是不够的,因此需要进行查看与修改Web服务器内存大小,接下来就介绍服务器内存查看的方法以及不同服务器内存的修改方式。

各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法。

JVM参数定义:

- Xms: 初始化内存大小

- Xmx: 可以使用的最大内存

以下示例工具:报表开发工具FineReport

二、服务器内存的查看

如果您想要查看应用服务器的内存配置情况,可以启动Web服务器,进入平台系统,URL地址为:http://localhost:8080/WebReport/ReportServer?op=fr_platform,选择管理系统>系统监控>系统状态>内存使用情况,即可查看到当前web服务器的内存使用情况,如下图:


注:如果用户购买了数据决策系统,那么URL地址可以输入http://localhost:8075/WebReport/ReportServer?op=fs

其中:

空闲内存:204M是指可用剩余内存为:204M。

所有内存:247M是指当前调用的内存为:247M。

最大内存:494M是指可调用的最大内存为:494M。

三、FineReport内存机制

3.1 描述

在使用报表的过程中有时候会遇到内存溢出的问题,下面简单介绍我们报表的内存机制以及怎样释放内存。

3.2 内存机制

3.21内存回收机制

Java的内存垃圾回收(GC)机制是从程序的主要运行对象开始检查引用链,当遍历一遍后发现没有被引用的孤立对象就作为垃圾回收。GC为了能够正确释放对象,必须监控每一个对象的运行状态。包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。

在Java中,这些无用的对象都由GC负责回收,同时java提供了函数可以访问GC, 如运行GC的函数System.gc(),但是根据Java语言规范定义,该函数不保证JVM的垃圾收集器一定会执行。因为不同的JVM实现者可能使用不同的算法管理GC。通常GC的线程的优先级别较低。JVM调用GC的策略也有很多种,有的是内存使用到达一定程度时,GC才开始工作,也有定时执行的,有的是平缓执行GC,有的是中断式执行GC。

导致内存泄漏主要的原因是,先前申请了内存空间而忘记了释放。如果程序中存在对无用对象的引用,那么这些对象就会驻留内存,消耗内存,因为无法让垃圾回收器GC验证这些对象是否不再需要。如果存在对象的引用,这个对象就被定义为"有效的活动",同时不会被释放。要确定对象所占内存将被回收,我们就要务必确认该对象不再会被使用。

3.22 中内存管理释放机制说明

FineReport报表后台采用的是纯java语言编写, 因此其内存释放机制与上述保持一致,当客户端与服务器端交互结束(如关闭浏览器页面, 打印结束等), 服务器端会将之前客户端操作消耗的内存释放掉, 即置为可被回收状态, 等候jvm调用gc

3.3中的手动GC方法

FR在1G内存下的临界点应该在130w行*5列左右, 对于某些集成环境来说, 有可能是需要做某些操作后, 将FR占用的内存释放掉, FR里面也提供了响应的接口, 具体使用方法如下所示:

在一个模板中添加一个按钮, 给按钮加上点击事件, 或者直接在js中调用, 内容如下:

    $.ajax({  
        url : FR.servletURL,  
         data : {  
              op : 'fr_utils',  
            cmd : 'gs_gc'  
             },  
        async : false,  
    })  
 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于提高 PeopleSoft 使用进程导出报表的速度,以下是一些优化建议: 1. 调整报表查询:优化报表查询的 SQL 语句,确保只检索必要的字段和数据,避免不必要的计算和过滤。使用索引来加快查询速度,并确保索引统计信息是最新的。 2. 分割报表:如果导出的报表包含大量数据,考虑将其分割为更小的部分,以减少每次导出的数据量。这可以通过使用子报表、分页或者过滤条件来实现。 3. 调整导出格式:选择合适的导出格式可以提高导出速度。例如,如果导出为 CSV 格式,可以选择使用逗号分隔符代替制表符,以减少数据量。 4. 调整并发设置:在 PeopleSoft 系统中,可以配置并发处理、作业调度等设置来控制并发导出的数量和资源分配。根据系统性能和用户需求,适当调整这些设置。 5. 优化服务器性能:确保服务器硬件和网络性能足够强大,能够支持并处理大量的并发请求。优化数据库服务器的配置和性能参数,例如内存缓存、I/O 设置等。 6. 定期清理数据:定期清理不再需要的历史数据,可以减少数据库大小,提高查询和导出的速度。 7. 使用缓存:根据业务需求,可以使用 PeopleSoft 的缓存功能来缓存报表数据。这样可以减少每次查询的数据量,提高导出速度。 请注意,优化报表导出速度需要综合考虑系统配置、数据库性能、网络状况和业务需求等因素。建议在测试环境中进行优化实验,并监控性能指标来评估优化效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo.yuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值