写在前面:
本文的数据涉及到之前遇到过的问题,大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作中与框架有比较大的关系,因此特别就框架的性能做了一次分析。
这里使用之前的一个报告数据: Python’s Web Framework Benchmarks。本文仅关注目前最常用的三大 Python 框架:Django、 Flask 以及 Tornado。
报告主要比较三点:
1.JSON:序列化一个对象,并返回一个 json。
2.远程性能:从远程服务器上返回 http response 的时间
3.数据库性能:使用 ORM(对象关系映射)从数据库获取数据,并渲染到模板上的时间
最基本的 json 测试:Django 与 Flask 占优
单纯在本地测试 json 的序列化,Django 完成一次 json 序列化的平均时间 42.52 毫秒,每秒请求量 4762 次。Flask 在此项测试中,与 Django 的比较不相上下,Flask 平均时间 43.33 毫秒,每秒请求量 4630 次。Tornado 完成 json 序列化的平均时间高达 77.51 毫秒,是所有框架中耗时最长的,每秒请求数是 2578 次,也是低于 Django 与 Flask 的水准。这仅仅说明框架在本地处理 json 的速度。框架还涉及 http request/response 以及数据库的读写,后面还需要综合来分析框架的性能。

处理远程 http 请求的能力:Tornado 占绝对优势
从这项测试开始,Tornado 的强悍开始显现。Tornado 完成 http 请求的平均时间是 1.04 秒,而 Flask 是 3.34 秒,Django 是 3.48 秒,http 响应速度 Tornado 比 Flask 以及 D

本文分析了Python的Django、Flask和Tornado三大Web框架的性能,包括JSON序列化、远程HTTP请求和数据库处理。Tornado在远程性能上表现出色,而Django在数据库处理上较慢,但提供了全面的功能。Flask则在性能和灵活性之间取得平衡。选择框架应考虑项目需求和团队能力。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



