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-testingmysql

单个性能测试

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

结果:sql

  • 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..net

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

相关文章
相关标签/搜索