“实践是检验真理的唯一标准”
前言
测试异步与同步下Python对于PostgreSQL数据库操作的性能
通过测试同步以及异步下对于数据库的增加和查找操作,以进行性能评估。更直观的以及量化地感受同步以及异步下的性能差距。
项目地址
环境初始化
需要安装pipenv
,详细内容可参考
1 | pip3.6 install pipenv |
SQL操作性能评估
1 | python postgresql_speed_test.py |
结论
从结果上看,对于数据库操作本身,异步对于其性能本身只能算是锦上添花。而异步操作本身则也需要添加对事件循环的处理,等于是变相的增加了运行时间,而如果每个数据库操作本身所需要的时间小于事件循环处理的时间,则其总时间就是增加的。
所以异步架构在用于单纯的数据库操作时,并不能取得非常良好的性能优化,数据库操作本身的优化还是依赖于操作本身以及数据库结构的优化。
WebServer性能评估
flask
1 | python flask_server_speed_test.py |
1 | wrk -d 60 -c 100 -t 12 --timeout 8 http://127.0.0.1:8080/db |
sanic
1 | python sanic_server_speed_test.py |
1 | wrk -d 60 -c 100 -t 12 --timeout 8 http://127.0.0.1:8080/db |
结论
从中等量级的压测的结果上看,对于异步架构的网络服务器,在性能上有了很大的提升。