集算报表与润乾报表的计算性能对比测试

1、测试目的

         在相同的硬件和web容器上测试润乾报表和集算报表的性能,对比在报表中完成分组、排序、过滤、连接、排名的性能差异,以及并发情况下二者的表现。测试过程中,润乾报表将采用报表工具内置的计算引擎,集算报表采用其内置的集算器计算引擎。

 

2、环境描述

        测试机型:DellInspiron 3420

        CPU:Intel Core i5-3210M@2.50GHz *4

        RAM:4G

        HDD:西数WDC(500G5400转/分)

        操作系统:Win7(X64)SP1

        JDK:1.6

        数据库:oracle11gR2

        Tomcat:6.0.36_x64

        TomcatJVM内存:-Xms512m-Xmx2048m

        润乾报表版本:4.5.6

        集算报表版本:5.0

3、数据描述

        测试使用到三个表T1、T2、T3,下表为三表信息,其中数据量为记录条数。


        T1、T2表结构相同,如下:

        T3表结构:

4、用例描述

4.1、分组

        使用T2表,在报表中分别按照Date2和Date字段进行分组,进行分组汇总,取数sql:ds1: select * from t2 。

 

        报表格式为:

4.1.1  润乾报表实现


4.1.2  集算报表实现

        集算器脚本:

        报表模板:

4.2、排序

        使用T1表,取50万条记录,在报表按照Date字段进行排序,报表显示5个字段,取数sql:

ds1:select * from t1 where rownum<500000

 

        报表格式为:

4.2.1、润乾报表实现

4.2.2、集算报表实现

        集算器脚本:

        报表模板:

4.3、过滤

        使用T1表,在报表中按照ID字段过滤,过滤后数据量为82条,取数sql:ds1:select * from t1 。

 

        报表格式为:

4.3.1、润乾报表实现



4.3.2、集算报表实现

        集算器脚本:


        报表模板:

4.4、连接

        使用T2和T3表,在报表中按照T2的ID字段与T3左连接,取数sql:

        ds1:select * from t2 where userid<267427523

        ds2:select * from t3 where userid<10485202

        ds1记录数为:7171;ds2记录数为:12730

 

        报表格式为:


4.4.1、润乾报表实现


4.4.2、集算报表实现

        集算器脚本:


        报表模板:

4.5、排名

        使用T3表,在报表中根据SumTime进行排名,取数sql:ds1: select * from t3 whereuserid<8883948

        数据集ds1记录数为:10430 。

 

        报表格式为:

4.5.1、润乾报表实现


4.5.2、润乾报表实现

        集算器脚本:


        报表模板:


4.6、并发分组

        使用5.1分组用例,进行多并发分组测试,这里采用4个并发。

5、测试方法

        使用两个完全相同的Tomcat(JVM等完全)分别部署润乾报表应用和集算报表应用,报表数据来源相同,润乾报表使用sql数据集,直接取数;集算报表采用集算器数据集,取数在dfx中完成。分别比较报表中完成的分组、排序等报表性能,每个用例测试时前均重启Tomcat,以保证无其他报表占用内存等资源。

        此外,由于测试机配置,不同用例使用了不同数据表,故不同用例之间纵向无可比性,主要看横向,即:润乾报表和集算报表的性能差异。

6、测试结果

        *下表结果数据单位为:秒

【说明】

这里的时间记录是从SQL取数完毕后到报表计算完成,润乾报表的日志中会直接提供这两个时间点,相减即得间隔时间;集算报表需要在脚本中加debug信息记录取完数的时刻,再与报表日志中的计算完报表的时间相比,得到间隔时间。 

7、解读分析

        集算报表将计算放在集算器脚本中进行,集算器采用了更高效的Hash算法,对于分组等有数据关联的计算有极其显著地提高,对于过滤排序等硬遍历式计算则在算法层面没有较大提升,表现出来的少量提高主要是因为集算器中运算不带有展现属性造成的。

        这次测试的所有运算都是单线程的,事实上,集算器还可以支持多线程并行计算以充分利用CPU的多核,还能进一步提升性能,即使在排序和过滤类的运算上也能有数倍提高。而包括润乾报表在内的大部分报表工具目前都不支持多线程并行计算,无法利用CPU的多核提高性能。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PerformanceRunner 是一种性能测试工具,用于测试 Web 应用程序的性能。它提供了丰富的性能指标和数据报表,用于评估 Web 应用程序的性能和稳定性。下面是 PerformanceRunner 性能测试结果报表的分析: 1. 压力测试结果:压力测试结果报表包括了每个请求的平均响应时间、最大响应时间、最小响应时间、响应时间标准差、吞吐量等指标。这些指标可以帮助我们了解系统在不同负载情况下的性能表现。 2. 错误率:错误率报表显示了系统在不同负载情况下的错误率。这些错误可以是 HTTP 状态码错误、应用程序错误等。错误率报表可以帮助我们了解系统的稳定性。 3. 资源使用率:资源使用率报表显示了系统在不同负载情况下的 CPU、内存、磁盘等资源的使用率。这些指标可以帮助我们了解系统在高负载情况下的表现,以及系统是否存在资源瓶颈。 4. 负载均衡:负载均衡报表显示了系统在不同负载情况下的负载均衡情况。这些指标可以帮助我们了解系统在高负载情况下的负载均衡表现,并且可以帮助我们优化负载均衡策略。 5. 性能趋势:性能趋势报表显示了系统在不同时间段内的性能变化情况。这些指标可以帮助我们了解系统的长期性能表现,并且可以帮助我们预测系统未来的性能表现。 通过 PerformanceRunner 的性能测试结果报表分析,我们可以更好地了解系统的性能表现和稳定性,并且可以采取相应的措施来优化系统的性能

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值