异步Python Web框架比较

新闻 前端
基准测试的目的不是测试部署(例如uvicorn与hypercorn等)或数据库(ORM,驱动程序),而是测试框架本身。

 异步Python Web框架比较

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

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

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

测试硬件

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

  • 2核vCPU(Intel®Xeon®Platinum 8272CL(Cascade Lake),Intel®Xeon®8171M 2.1GHz(Skylake))
  • 7 GB的RAM内存
  • 14 GB的SSD磁盘空间
  • 操作系统Ubuntu 20.04

使用gunicorn / uvicorn命令从docker运行ASGI应用程序:

  1. gunicorn -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8080 app:app 

应用程序的源代码可以在此处找到 。

https://github.com/klen/py-frameworks-bench/tree/develop/frameworks

通过WRK实用程序收到结果:

  1. wrk -d15s -t4 -c64 [URL] 

基准测试包含三种测试:

  1. “简单”测试:接受请求并返回带有自定义动态标头的HTML响应。该测试仅模拟单个HTML响应。
  2. “上传”测试:接受上传的文件并将其存储在磁盘上。该测试模拟多部分表单数据处理并处理文件。
  3. “ API”测试:检查标头,解析路径参数,查询字符串,JSON正文并返回JSON响应。该测试模拟JSON REST API。

接受请求并返回带有自定义动态标头的HTML响应

该测试仅模拟单个HTML响应。按最大请求数/秒排序

 

 

 

解析上传的文件,将其存储在磁盘上并返回文本响应

该测试模拟多部分表单数据处理并处理文件。按最大请求数/秒排序

解析路径参数,查询字符串,JSON正文并返回JSON响应

该测试模拟一个简单的JSON REST API端点。按最大要求/秒排序

综合统计

综合基准测试结果

按已完成的请求排序

 

 

 

责任编辑:张燕妮 来源: 今日头条
相关推荐

2018-10-25 23:00:12

Python 开发编程语言

2017-07-18 15:13:17

2017-06-20 09:07:22

uvloopPython网络框架

2009-06-01 14:32:10

jpa技术Java框架

2021-07-28 06:51:08

FlaskPythonWeb

2022-08-10 12:21:07

PythonWebBottle

2022-04-07 15:41:36

PythonWeb 开发框

2009-06-23 15:51:00

JSF框架

2017-05-23 14:20:17

WebPython框架

2018-06-14 14:07:57

Pythonweb框架

2018-12-03 08:25:24

2015-08-25 09:53:22

Web开发Python框架

2011-02-17 11:18:29

PythonWebRuby

2015-07-13 10:41:30

Web开发 Python 框架

2017-09-11 10:55:22

PythonWeb框架

2019-02-11 09:35:04

Python应用程序Tornado

2014-12-09 14:07:50

2019-03-25 22:31:22

开发者技能框架

2023-10-09 18:17:52

Python语言Web

2019-04-23 09:30:51

PythonWeb框架
点赞
收藏

51CTO技术栈公众号