这里测试的python异步框架几乎都与ASGI兼容(除了aiohttp)。
基准测试的目的不是测试部署(例如uvicorn与hypercorn等)或数据库(ORM,驱X ^ G P ` , m /动程序),而是测试框架本身。基准检查检查请求解析(正文,标头,{ 3 { W表单数据,查询),路由,响应。
接受请求并返回带有自定义动态标头的HTML响应解析上传的文件,将其存储在磁盘上并返回文本响应解析路径参数,查询字符串,JSON正文并返回JSON响应的综合统计。
测试硬件
该基准使用Github Action运行。根据github文g 4 k G g ;档 ,运行的硬件规格为:
- 2核vCPU(Ix @ U n O S @ntelXeP U . g 4 % /onPlatinum 8272CL(Cascade Lake),IntelXeon817E s ( l i ~ U1M 2.1GHz(Skylake))
- 7 GB的RAM内存
- 14 GB的SSD磁盘空间
- 操作系统Ubuntu 20.04
使用gunicorn / uW ! @vicorn命令从docker运行ASGI应用程序:
- gunicorn-kuvicorn.workers.UvicornWorker-b0.0.0.0:8080app:app
应用程序的源代码可以在此处找到 。
hy i Zttps://github.com/klen/py-frameworks-bench/tree/develop/framewo& 7 u L t S m F )rks
通过WRK实用程序收到W ! = } ! &结果:
- wrk-d15s-t4-c64[URL]
基准测试包含三种测试:
- “简单”测试:接受请求并返回带有自定义动态标头的HTML响应。该测试仅模拟单个HTML响应。
- “上传”% W q测试:接受上传的文件并将其存储在磁盘上。该测试模拟多部分表单数据处理并处理文I z X D \ U D件。
- “ API”测试:检查U Z I f标头,解析路径参数,查询字符串,JSON正文并返回JSON响应。该测试模拟JSON REST API。
接受请求并返回带有自定义动L ; | q态标头的HTML响应
该测试仅模拟单个HTML响应。按最大请求数/秒排序
解析上传的文件,将, E – o 7 3 + q其存储在磁盘上并返回文本响应
该测试模拟多部分表单数据处理并处理文件。按最大请求数/秒排序
解析路径参数,查询字符串,JSON正文并返回JSOf t ] b K N = sN响应
该测试模拟一个简单的JSON REST API端点。按最大要求/秒排序
综合统计
综合基准} q N Y J o测试结果
按已完成的请求排序
特别声明:本站所收录作品、热点评论等信息来源互联网,目的只是为了系统归纳学习和传递资讯所有作品版权归原创作者所有,与本站立场无关,图文源自网络,如有侵权,请联系删除!请联系我们邮箱:908164873@qq.com/电话:187-8421-3206,我们将做删除处理!