TBSchedule应用实战(四)——“Hello,性能怪兽(集群篇)

本节以实际对比运行结果展示tbs的运行效率,模拟交易明细汇总,条件如下:

数据量:30w

计算逻辑:按账户号分组计算收入金额与支出金额,每500条记录汇总一次更新数据库。

硬件:4核3.3GHZ,16GB内存单机,Windows 7 专业版,4线程模拟4分片计算。

本节DEMO下载地址:点击下载

1、纯java实现计算结果如下:

17-12-26.15:51:56.039 [main            ] INFO  ClassPathXmlApplicationContext  - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1faccfb7: startup date [Tue Dec 26 15:51:56 CST 2017]; root of context hierarchy
17-12-26.15:51:56.087 [main            ] INFO  XmlBeanDefinitionReader  - Loading XML bean definitions from class path resource [application-context.xml]
17-12-26.15:51:56.442 [main            ] INFO  PropertyPlaceholderConfigurer  - Loading properties file from file [F:\workspace\tbschedule_wed_demo\tbschedule-wed-standalone\target\classes\db.properties]
17-12-26.15:51:56.447 [main            ] INFO  AutowiredAnnotationBeanPostProcessor  - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
分片:0  计算启动....
分片:1  计算启动....
分片:2  计算启动....
分片:3  计算启动....
分片:1  累计工作耗时:360437ms
分片:0  累计工作耗时:364454ms
分片:2  累计工作耗时:359437ms
分片:3  累计工作耗时:360880ms

总计耗时:1445.208秒

2、tbs实现计算结果如下:

170652_AJuM_3735193.png

先解释上图配置以保证公平性:

a)任务采用处理休眠模式,但是休眠时间为0,模拟JAVA持续执行。

b)任务采用单机4线程组,4任务项,模拟JAVA单机4分片。

c)任务配置线程数为1,即单线程执行,模拟java也是单线程执行。

总计耗时:36.1970秒

3、xxl-job实现计算结果如下(待更新):

工具CPU内存成功率耗时(单位:秒)
java25±1%80±10MB100%1445.208
tbs25±1%120±10MB100%36.1970
xxl-job25±1%120±20MB100%2190.613

备注:

a)在Win下,CPU占用没有参考意义。

b)因为测试机硬件有限,xxl-job被迫改为两分片执行。猜想4分片也差不了多少。

由此可见tbs之性能怪兽头衔名副其实,虽然目前版本对zookeeper的稳定性依赖较强,但得益于tbs将取数与计算形成抽象,隐藏内部优秀的线程状态管理。在单线程下性能尚且如此,试想一台16GB内存机器开启多线程性能得有多恐怖!

转载于:https://my.oschina.net/wednesday/blog/1594675

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值