类excel报表开发工具FineReport教程之服务器性能优化:内存的知识.pdfVIP

  • 9
  • 0
  • 约3.88千字
  • 约 10页
  • 2017-07-05 发布于湖北
  • 举报

类excel报表开发工具FineReport教程之服务器性能优化:内存的知识.pdf

类excel报表开发工具FineReport教程之服务器性能优化 :内 JVM堆栈内存是决定应用服务器性能的关键指标,一般服务器默认的内存配置都比 小 ,在较大型的应用项目中 ,这点内存是不够的 ,因此需要进行查看与修改Web服务器内 存大小,接下来就介绍服务器内存查看的方法以及不同服务器内存的修改方式。 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms , -Xmx)配置方法。 JVM参数定义: -Xms :初始化内存大小 -Xmx :可以使用的最大内存 服务器内存的查看 如果您想要查看应用服务器的内存配置情况,可以启动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内存机制 1.描述 在使用报表的过程中有时候会遇到内存溢出的问题 ,下面简单介绍我们报表的内存机制 以及怎样释放内存。 2.内存机制 2.1Java内存回收机制 Java的内存垃圾回收(GC)机制是从程序的主要运行对象开始检查引用链 ,当遍历一遍后 发现没有被引用的孤立对象就作为垃圾回收。GC为了能够正确释放对象 ,必须监控每一个 对象的运行状态。包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。 在Java 中,这些无用的对象都由GC负责回收 ,同时java 提供了函数可以访问GC, 如 运行GC的函数System.gc() ,但是根据Java语言规范定义 ,该函数不保证JVM的垃圾收 集器一定会执行。因为不同的JVM实现者可能使用不同的算法管理GC。通常GC的线程 的优先级别较低。JVM调用GC的策略也有很多种 ,有的是内存使用到达一定程度时 ,GC 才开始工作,也有定时执行的,有的是平缓执行GC ,有的是中断式执行GC。 导致内存泄漏主要的原因是 ,先前申请了内存空间而忘记了释放。如果程序中存在对无 用对象的引用 ,那么这些对象就会驻留内存 ,消耗内存 ,因为无法让垃圾回收器GC验证这 些对象是否不再需要。如果存在对象的引用 ,这个对象就被定义为有效的活动,同时不会 被释放。要确定对象所占内存将被回收,我们就要务必确认该对象不再会被使用。 2.2FineReport中内存管理释放机制说明 FineReport报表后台采用的是纯java语言编写, 因此其内存释放机制与上述保持一致, 当客户端与服务器端交互结束(如关闭浏览器页面, 打印结束等), 服务器端会将之前客户端 操作消耗的内存释放掉, 即置为可被回收状态, 等候jvm 调用gc 3.FineReport中的手动GC方法 FR在1G内存下的临界点应该在130w行*5列左右, 对于某些集成环境来说, 有可能是 需要做某些操作后, 将 FR占用的内存释放掉, FR里面也提供了响应的接口, 具体使用方法 如下所示: 在一个模板中添加一个按钮, 给按钮加上点击事件, 或者直接在js 中调用, 内容如下: 1.$.ajax({ 2. url : FR.servletURL, 3. data : { 4. op : fr_utils, 5. cmd : gs_gc 6. }, 7. async : false, 8.}) 服务器内存修改 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms , -Xmx)配置方法。 JVM参数定义: -Xms :初始化内存大小 -Xmx :可以使用的最大内存 Tomcat服务器内存修改 1.问题描述 java 应用程序运行过程中会使用web应用服务器的内存,如执行报表获取的数据,运 算的中间数据等都需要暂存在服务器内存中。

文档评论(0)

1亿VIP精品文档

相关文档