首页 > 其他分享 >XMReport与IReport后端性能对比

XMReport与IReport后端性能对比

时间:2022-09-05 11:03:46浏览次数:61  
标签:后端 100% IReport XMReport TPS 测试 CPU

之前XMReport由于没有对重复的图片以及内存使用进行优化,导致性能相对于IReport有较大幅度落后,经优化后,已经在内存使用以及性能方面领先于IReport。本次测试主要从并发数方面进行测试。

测试环境

CPU: R5 3500U,4核心8线程

内存: 8G DDR4 (实际可使用7G, 显存占用了1G)

操作系统:Windows 10

IReport版本: 6.20.0

XMReport版本:1.1.20220903080230

测试工具:Jmeter由于条件限制,Jmeter与后端在同一台机器上运行。

IReport启动参数:java -Xmx1780m -Xmn592m -jar ireport-0.0.1-SNAPSHOT.jar

XMReport启动参数:java -Xmx1780m -Xmn592m -jar web-report-spring-boot-nstc-0.1.jar

测试过程跑两次测试,报第二次程序热身后的作为结果。

并发数

对于生成报表这种比较重的任务来说,大量的用户并发这种场景不仅非常考量引擎的CPU性能,同样也非常考量对于引擎对于内存的占用。如果对于内存使用不加节制的话,则非常容易造成内存不足而引起严重的OOM错误。下面使用同样的模板生成100页的任务进行测试,测试使用相同的文本内容以及图片内容,图片使用相同的图片文件。效果如图:

10并发(Thread=10, Ramp Up=2S, Loop Count=50)

IReport XMReport
2.4 TPS, CPU: 100% 5.0 TPS, CPU: 100%

IReport测试结果

XMReport测试结果

 

50并发(Thread=50, Ramp Up=2S, Loop Count=10)

IReport XMReport
1.9 TPS, CPU: 100% 5.1 TPS, CPU: 100%

IReport测试结果

 

XMReport测试结果

100并发(Thread=100, Ramp Up=2S, Loop Count=5)

IReport XMReport
1.8 TPS, CPU: 100% 5.0 TPS, CPU: 100%

IReport测试结果

 

XMReport测试结果

200并发(Thread=200, Ramp Up=2S, Loop Count=3)

IReport XMReport
1.6 TPS, CPU: 100% 4.9 TPS, CPU: 100%

IReport测试结果

 

XMReport测试结果

400并发(Thread=400, Ramp Up=2S, Loop Count=2)

因为SpringBoot默认的HTTP线程数是200,因为需要在应用启动时加上参数—server.tomcat.max-threads=400。可见,随着并发线程数的提高,线程上下文的频繁切换以及内存使用增大造成GC压力上升,两者的性能都出现了明显下降。

IReport XMReport
31.1/min, CPU:
100%
4.1/s, CPU: 100%

IReport测试结果

 

XMReport测试结果

600并发(Thread=400, Ramp Up=2S, Loop Count=2)

因为SpringBoot默认的HTTP线程数是200,因为需要在应用启动时加上参数—server.tomcat.max-threads=600。这时候IReport这边用99%的CPU时间都在做GC操作,测试没有跑完已经因为内存不足报GC错误了,TPS也非常低,只有47.6/h。通常这种场景已经没有意义了,一般可以限制HTTP线程池的线程数来使应用的吞吐量和内存使用保持在一个合理范围。

但是XMReport这边也非常吃力,勉强撑完了这轮测试,TPS也只有2.9。建议限制并发的线程数,比如根据实例的CPU核心数以及内存大小使用—server.tomcat.max-threads参数限制线程池的线程数量。

IReport XMReport
47.6/hour, CPU:
100%
2.9/s, CPU: 100%

IReport测试结果

 

XMReport测试结果

总结

从上面测试可以看到,同样的并发数下,XMReport基本可以做到比IReport更好的性能以及更少的内存使用。

标签:后端,100%,IReport,XMReport,TPS,测试,CPU
From: https://www.cnblogs.com/mosmith/p/16657337.html

相关文章

  • 光速搭建前后端分离应用(最低限度代码量和依赖包)
    环境搭建安装Node.js+任意浏览器前端index.html<!DOCTYPEhtml><html><head><metacharset="utf-8"><script>functionhandleClick(){//声明......
  • JS对后端响应的long类型数据处理精度丢失问题
    1、数据库的数据2、前端拿到的数据前端帮我们进行四舍五入了,这并不是我想要的3、解决办法把后端响应的数据long类型转成string类型,可以使用Stream流的方式或者for循......
  • 前台、后台、前端、后端
    前台:呈现给用户的视觉和基本的操作。后台:用户浏览网页时,我们看不见的后台数据跑动。后台包括前端、后端。前端:对应我们写的html、css、javascript等网页语言作用在前端网......
  • slam14(1) v3_2 后端优化 BA优化
    https://blog.csdn.net/moyu123456789/article/details/93718232    s     ......
  • 11.业务功能实现---商品服务三级分类前后端联调
    1.商品服务三级分类前后端联调登录后台管理系统,添加系统管理菜单:目录(一级菜单)--商品系统、菜单(二级菜单)--分类维护、-----在侧边栏会显示新增加的菜单;编写......
  • 后端部署
    uwsgi.py中设置settings文件位置。设置uwsgi.ini启动在服务器上新建一个uwsgi.ini文件viuwsgi.ini在uwsgi.ini文件里配置以下相关配置信息#IP和端口,IP......
  • 如何前后端分离?
    相信很多人都听说过前后端分离,但是对于如何前后端分离,大家又知道多少?在数字化趋势发展愈演愈浓的当今社会,做好前后端分离优点多多。本文着重就这个问题与大家一起分享相关......
  • slam14(1) v3_3 后端优化 BA位姿图优化
      https://blog.csdn.net/heroybc/article/details/106355948 1.位姿图  当把BA优化问题中的位姿图的问题简化要怎么做?BA优化中的计算量很大很大,为了减少计......
  • 前后端分离开发
    前言当前项目中,前端代码和后端代码混合在一起,是存在问题的,存在什么问题呢?主要存在以下几点问题:1).开发人员同时负责前端和后端代码开发,分工不明确2).开发效率低......
  • 后端Web开发框架(Java)
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取为什么使用SpringBoot简化配置,无需编写太多的xml配置文件,效率很高;Spring可以整合很多各......