flowable测试

测试环境

代码

https://130.51.23.250/bss_gd/baseline/workflow-framework/activiti6-demo/tree/master/flowable6-stress-testing https://130.51.23.250/bss_gd/baseline/workflow-framework/activiti6-demo/tree/master/activiti6-stress-testing

单个性能测试

  • 流程包括10个Service Task,每个Service Task只打印一行文字
  • 只执行流程1次
  • 采用默认的H2数据库

结果:

  • activiti6.0.0每个任务耗时不到0.5毫秒,flowable也差不多
  • 启动流程与结束流程耗时较多,大概在0.5秒这个数量级

activiti6日志: 16:04:46.544 开始测试. 16:04:46.819 start.-----打印任务正在执行-----1-----16:04:46.819 end. 16:04:46.819 start.-----打印任务正在执行-----2-----16:04:46.819 end. 16:04:46.820 start.-----打印任务正在执行-----3-----16:04:46.820 end. 16:04:46.820 start.-----打印任务正在执行-----4-----16:04:46.820 end. 16:04:46.820 start.-----打印任务正在执行-----5-----16:04:46.820 end. 16:04:46.820 start.-----打印任务正在执行-----6-----16:04:46.820 end. 16:04:46.820 start.-----打印任务正在执行-----7-----16:04:46.820 end. 16:04:46.821 start.-----打印任务正在执行-----8-----16:04:46.821 end. 16:04:46.821 start.-----打印任务正在执行-----9-----16:04:46.821 end. 16:04:46.821 start.-----打印任务正在执行-----10-----16:04:46.821 end. 16:04:47.222 测试结束。

并发性能测试

  • 流程包括10个Service Task,每个Service Task只打印一行文字
  • 并发执行流程100次
  • 采用默认的H2数据库
  • flowable6.4.1与activiti6.0.0使用相同的代码和相同的流程

结果: flowable执行流程100次,也就是1000个任务,共耗时1.12秒 activiti6执行流程100次,也就是1000个任务,共耗时1.07秒

flowable日志: 15:31:19.390 start.-----打印任务正在执行-----1-----15:31:19.390 end. 15:31:20.510 start.-----打印任务正在执行-----998-----15:31:20.511 end.

activiti日志: 15:53:05.398 start.-----打印任务正在执行-----1-----15:53:05.398 end. 15:53:06.462 start.-----打印任务正在执行-----988-----15:53:06.462 end. (可能我的并发代码不好,所以是998,不用关注)

并发性能测试(Mysql)

  • 把H2改为MySQL,测试flowable

结果: flowable耗时1.24秒,和H2相对差不多,没有慢太多。

flowable日志: 16:36:55.773 start.-----打印任务正在执行-----1-----16:36:55.773 end. 16:36:57.017 start.-----打印任务正在执行-----991-----16:36:57.017 end.

高并发性能测试

  • 把并发100提高到500和1000
  • 只能使用mysql测试,H2会报错(估计是这个数据库有些限制啥的)
  • flowable/activiti默认的数据库连接不够,要修改代码(设置为100个数据库连接)

结果:

  • 500并发flowable耗时5.5秒,平摊到5k个任务,每个任务约1.1毫秒
  • 1000并发flowable耗时11.5秒,平摊到1w个任务,每个任务约1.1毫秒

flowable日志: 16:41:02.198 start.-----打印任务正在执行-----1-----16:41:02.198 end. 16:41:07.701 start.-----打印任务正在执行-----4882-----16:41:07.701 end.

16:47:00.679 start.-----打印任务正在执行-----1-----16:47:00.679 end. 16:47:12.188 start.-----打印任务正在执行-----9820-----16:47:12.188 end.

结论

  • flowable6和activiti6我简单测试的性能差不多,activiti6反而微小的领先,但其实基本一样
  • 无论怎么测试,一个任务的耗时在0.5~1毫秒左右
  • 高并发下对性能并没有什么影响
  • 内存数据库与跨网络数据库的不同对性能没有什么影响
  • 附录是冀正对flowable和activiti的性能测试,里面说flowable能优胜一倍,虽然和我的测试结果不同,但也有一定参考意义,也许是测试的场景不同差异会比较大 (明天继续对比一下两者的功能差异)

附录

flowable6.3功能以及性能基准测试报告 https://blog.csdn.net/qq_30739519/article/details/79553508 flowable异步历史性能基准测试 https://blog.csdn.net/qq_30739519/article/details/79553524

转载于:https://my.oschina.net/u/2464371/blog/3031154

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值