螺旋数据集和报表内置引擎对比报告(一)

楼主
我是社区第128位番薯,欢迎点我头像关注我哦~
一、 性能对比测试目的
目前系统的大数据量运算展示等情况越来越多,报表产品性能是否能够支撑应用系统有着很大的意义。编写此对比测试报告的目的是通过测试对比不同引擎选择适合的引擎满足产品的性能需求,同时发现系统中存在的性能瓶颈,提升产品性能有依可据,起到引导优化产品性能的目的。
二、 性能测试主要指标
2.1 典型应用模板展示加载时间
2.2
测试机器的CPU、内存使用情况

三、 测试环境
3.1 硬件环境
  
CPU
  
内存
操作系统
  
I5-4210M 2.6GHz
  
8G
Win10 64位
3.2 软件环境
  
数据库
  
应用
浏览器
  
MySQL
  
FineReport  8.0
Chrome61 64位
四、 测试工具
Jprofiler工具主要用于检查和跟踪系统(仅限JAVA开发)的性能。Jprofiler可以通过时时的监控系统的内存使用情况,随时监控垃圾回收,线程运行状态等手段,从而很好的监视JVM运行情况及性能。Jprofiler直觉式的GUI让你可以找到性能瓶颈、抓出内存漏失。
五、 数据表详情
  
表名
  
数据量
  
S人员花名册
  
23个字段  23199条数据
  
20w_10col
  
10个字段  20万条数据
  
100w
  
11个字段  100万条数据
  
10w_10col_group10000
  
17个字段10万条数据
六、测试场景6.1 明细表展示
  
主要测试功能点
  
明细表展示

  
数据表
  
S人员花名册(2W)

  
  

  
  
加载时间(s)
CPU使用率
内存占用(M)

  
螺旋展示
  
第一次预览
1.9
5.65%
440

第二次预览
1.8
7.03%
320

第三次预览
1.8
4.88%
320

  
报表展示
  
第一次预览
3.1
    16.99%
280

第二次预览
2.3
9.17%
310

第三次预览
2.1
13.26%
310

平均预览
2.5
13.14%
300

  
数据表
  
20w_10col

  
  

  
  
加载时间(s)
CPU使用率
内存占用(M)

  
螺旋展示
  
第一次预览
8.9
16.4%
496

第二次预览
3.0
26.34%
521

第三次预览
2.9
32.61%
382

  
报表展示
  
第一次预览
16.4
   55.56%
436

第二次预览
9.7
72.31%
423

第三次预览
9.5
44.52%
553

平均预览
11.8
57.46%
470

  
数据表
  
100w

  
  

  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
46.1
46.4%
1030

第二次预览
12.3
55.38%
1130

第三次预览
14.3
48.20%
1110

  
报表展示
  
第一次预览
62.3
   78.53%
1350

第二次预览
59.8
72.31%
1423

第三次预览
66.5
74.52%
1685

平均预览
62.8
75.12%
1486









6.2 分组表展示
  
主要测试功能点
  
分组表展示
  
数据表
  
100w
  
最终展现100行2列
  
  
  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
5.5
39.8%
300
第二次预览
2.8
2.53%
370
第三次预览
2.3
1.86%
405
  
报表展示
  
第一次预览
27.3
   74.69%
940
第二次预览
18.5
75.21%
990
第三次预览
16.5
51.37%
980
平均预览
20.7
67.09%
970
6.3 明细表过滤排序展示
  
主要测试功能点
  
明细表过滤排序展示
  
数据表
  
100w
  
最终展现24W行5列
  
  
  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
40.2
52.1%
610
第二次预览
3.1
49.53%
490
第三次预览
3.5
41.86
650
  
报表展示
  
第一次预览
50.5  
73.55%
1136
第二次预览
48.4
78.93%
925
第三次预览
40.8
76.56%
1126
平均预览
46.5
76.35%
1062
  
数据表
  
20w_10col
  
最终展现1008行4列         
  
  
  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
16.8
29.63%
376
第二次预览
1.5
10.54%
412
第三次预览
1.2
7.21%
   441
  
报表展示
  
第一次预览
15.6
63.59%
398
第二次预览
8.2
15.21%
728
第三次预览
7.8
16.97%
735
平均预览
10.6
319.23%
620







6.4 明细表计算展示
  
主要测试功能点
  
明细表计算展示
  
数据表
  
100w
  
最终展现 100W行5列
  
  
  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
51.3
66.65%
1320
第二次预览
15.2
71.49%
1380
第三次预览
10.2
77.88%
1460
  
报表展示
  
第一次预览
GC overhead limit exceeded
  
第二次预览
第三次预览
平均预览
  
数据表
  
20w_10col
  
最终展现 20W行5列
  
  
  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
16.2
41.53%
474
第二次预览
2.5
40.09%
309
第三次预览
2.8
32.61
640
  
报表展示
  
第一次预览
16.8
61.44%
539
第二次预览
10.3
58.67%
379
第三次预览
10.2
63.57
375
平均预览
12.4
612.27%
431







6.5 多表关联
  
主要测试功能点
  
多表关联
  
数据表
  
20w_10col、10w_10col_group10000
  
最终展现20行5列
  
  
  
  
加载时间(s)
CPU使用率
内存占用(M)
  
螺旋展示
  
第一次预览
21.9
46.48%
505
第二次预览
2.8
24.21%
650
第三次预览
2.1
21.28%
620
  
报表展示
  
第一次预览
22.7
    50.07%
520
第二次预览
23.1
71.33%
560
第三次预览
23.5
49.31%
610
平均预览
23.1
56.91%
563
七、测试结果分析
当使用螺旋数据集进行数据的读取时,第一次读取有一个进行缓存的过程,所以第一次读取时间大约等于使用SQL读取的时间。以后进行读取是直接在内存中进行读取的,时间大约就是报表展现的时间,缓存失效时间为5分钟。
       在进行明细表展现时,小数据量下数据读取不是系统的瓶颈,报表与螺旋数据集无较大差别,当数据量达到几十万上百万时,报表读取时间显著加长。螺旋数据集在缓存下对比报表有5倍的性能提升。在明细表进行过滤计算排序等操作形成小数据集时,螺旋数据集也能够保持5倍以上的性能。
       分组汇总表展现是螺旋数据集的长处,几十万甚至百万数据下分组汇总,螺旋数据集对比报表有5到10倍的性能提升。
螺旋数据集具有预先关联数据表的功能,能够预先处理数据表关联逻辑。在数据生成前就能做好关联操作,报表展现的时候直接在缓存中读取多张表的关联后的表直接展现。相对于报表手动关联有10倍的性能提升。

分享扩散:

沙发
发表于 2017-10-20 14:00:33
对大数据量计算展现有了很明显的性能提高啊。棒棒哒
板凳
发表于 2017-10-21 17:24:14
学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2回帖数 1关注人数 8947浏览人数
最后回复于:2017-10-21 17:24

返回顶部 返回列表