深圳热线深圳

异步Python Web框架比较

2021-05-09 10:33:40 来源:

这里测试的python异步框架几乎都与ASGI兼容(除了aiohttp)。

基准测试的目的不是测试部署(例如uvicorn与hypercorn等)或数据库(ORM,驱动程序),而是测试框架本身。基准检查检查请求解析(正文,标头,表单数据,查询),路由,响应。

接受请求并返回带有自定义动态标头的HTML响应解析上传的文件,将其存储在磁盘上并返回文本响应解析路径参数,查询字符串,JSON正文并返回JSON响应的综合统计。

测试硬件

该基准使用GithubAction运行。根据github文档,运行的硬件规格为:

    2核vCPU(Intel®Xeon®Platinum8272CL(CascadeLake),Intel®Xeon®8171M2.1GHz(Skylake))7GB的RAM内存14GB的SSD磁盘空间操作系统Ubuntu20.04
使用gunicorn/uvicorn命令从docker运行ASGI应用程序:

gunicorn-kuvicorn.workers.UvicornWorker-b0.0.0.0:8080app:app
应用程序的源代码可以在此处找到。

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端点。按最大要求/秒排序

综合统计

综合基准测试结果

按已完成的请求排序

来源:51CTO

深圳热线移动端

深圳热线移动端

扫码访问移动深圳热线,更多精彩内容随你看。

推荐 29606
0 条评论 / 0 人参与 网友评论 跟帖管理 举报

热门推荐