当前位置: 首页 > 科技观察

异步PythonWeb框架对比

时间:2023-03-23 01:30:34 科技观察

这里测试的python异步框架几乎都兼容ASGI(aiohttp除外)。基准测试的目的不是测试部署(例如uvicornvshypercorn等)或数据库(ORM、驱动程序),而是测试框架本身。基准测试检查请求解析(文字、标头、表单数据、查询)、路由、响应。接受请求并返回带有自定义动态标头的HTML响应解析上传的文件,将其存储在磁盘上并返回文本响应解析路径参数、查询字符串、JSON文字并返回JSON响应的综合统计信息。测试硬件基准测试使用GithubAction运行。根据github文档,运行的硬件规格为:2核vCPU(Intel?Xeon?Platinum8272CL(CascadeLake)、Intel?Xeon?8171M2.1GHz(Skylake))7GBRAM内存14GBSSD磁盘空间操作系统Ubuntu20.04使用gunicorn/uvicorn命令从docker运行ASGI应用程序:gunicorn-kuvicorn.workers.UvicornWorker-b0.0.0.0:8080app:应用程序的源代码可以在这里找到。https://github.com/klen/py-frameworks-bench/tree/develop/frameworks通过WRK实用程序收到结果:wrk-d15s-t4-c64[URL]基准包含三个测试:“简单”测试:接受请求并返回带有自定义动态标头的HTML响应。该测试仅模拟单个HTML响应。“上传”测试:接受上传的文件并将其存储在磁盘上。该测试模拟多部分表单数据处理并处理文件。“API”测试:检查标头、解析路径参数、查询字符串、JSON文字并返回JSON响应。该测试模拟JSONRESTAPI。接受请求并返回带有自定义动态标头的HTML响应该测试仅模拟单个HTML响应。按最大请求数/秒排序解析上传的文件,将其存储在磁盘上并返回文本响应此测试模拟多部分表单数据处理并处理文件。按最大请求/秒排序解析路径参数、查询字符串、JSON文字并返回JSON响应该测试模拟一个简单的JSONRESTAPI端点。按最大请求/秒排序的综合统计数据按已完成请求排序的综合基准测试结果