博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flowable测试
阅读量:7080 次
发布时间:2019-06-28

本文共 2283 字,大约阅读时间需要 7 分钟。

hot3.png

测试环境

代码

单个性能测试

  • 流程包括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功能以及性能基准测试报告 flowable异步历史性能基准测试

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

你可能感兴趣的文章
C语言进阶剖析第二课--有符号和无符号
查看>>
2009年最后一天,要写点什么
查看>>
bind原理图释
查看>>
golang--性能测试和分析
查看>>
获取汉字拼音的简便方法
查看>>
POJ 2531 深搜剪枝
查看>>
Day07 - Ruby比一比:Symbol符号与String字串
查看>>
XML序列化与反序列化
查看>>
学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
查看>>
搭建前端监控系统(三)静态资源加载监控篇
查看>>
HDU4813 Hard Code
查看>>
UVA156 Ananagrams
查看>>
postman的身份验证Authentication
查看>>
tomcat启动批处理文件
查看>>
01-2. Maximum Subsequence Sum (25)
查看>>
mybatis-generator使用
查看>>
关于构建之法的问题
查看>>
如何更改MyEclipse代码自动换行的长度?
查看>>
idea 启动调试模式总提示端口58346被占用问题
查看>>
Js中判断变量存不存在的问题
查看>>