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

相關文章
相關標籤/搜索