File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed
Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 11# 基准测试
22
3- 独立公司 TechEmpower 的基准测试表明在 Uvicorn 下运行的 ** FastAPI** 应用程序是 <a href =" https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7 " class =" external-link " target =" _blank " >可用的最快的 Python 框架之一</a >,仅次与 Starlette 和 Uvicorn 本身 (由 FastAPI 内部使用)。(* )
3+ 第三方机构 TechEmpower 的基准测试表明在 Uvicorn 下运行的 ** FastAPI** 应用程序是 <a href =" https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7 " class =" external-link " target =" _blank " >可用的最快的 Python 框架之一</a >,仅次与 Starlette 和 Uvicorn 本身 (由 FastAPI 内部使用)。(* )
44
5- 但是在检查基准测试或与其它同类比较时 ,请注意以下几点。
5+ 但是在查看基准得分和对比时 ,请注意以下几点。
66
77## 基准测试和速度
88
9- 当您做基准测试检查时,通常会看到被视为等效的几种不同类型的工具 。
9+ 当你查看基准测试时,几个不同类型的工具被等效地做比较是很常见的情况 。
1010
1111具体来说,是将 Uvicorn,Starlet
A548
te 和 FastAPI 一起比较(在许多其它工具中)。
1212
2020
2121* ** Uvicorn** :
2222 * 具有最佳性能,因为除了服务器本身外,它没有太多额外的代码。
23- * 您不会直接在 Uvicorn 中编写应用程序。这意味着您的代码至少必须包含 Starlette(或 ** FastAPI** )提供的代码。如果您这样做了,最终应用程序和框架会最大程度地减少应用程序代码的编码量和错误 。
23+ * 您不会直接在 Uvicorn 中编写应用程序。这意味着您的代码至少必须包含 Starlette(或 ** FastAPI** )提供的代码。如果您这样做了(即直接在 Uvicorn 中编写应用程序),最终的应用程序会和使用了框架并且最小化了应用代码和 bug 的情况具有相同的性能损耗 。
2424 * 如果要对比与 Uvicorn 对标的服务器,请将其与 Daphne,Hypercorn,uWSGI等应用服务器进行比较。
2525* ** Starlette** :
2626 * 在 Uvicorn 后使用 Starlette,性能会略有下降。实际上,Starlette 使用 Uvicorn运行。因此,由于必须执行更多的代码,它只会比 Uvicorn 更慢。
2929* ** FastAPI** :
3030 * 与 Starlette 使用 Uvicorn 一样,由于 ** FastAPI** 使用 Starlette,因此 FastAPI 不能比 Starlette 更快。
3131 * FastAPI 在 Starlette 基础上提供了更多功能。例如在开发 API 时,所需的数据验证和序列化功能。FastAPI 可以帮助您自动生成 API文档,(文档在应用程序启动时自动生成,所以不会增加应用程序运行时的开销)。
32- * 如果您不使用 FastAPI 而直接使用 Starlette(或诸如 Sanic,Flask,Responder 等其它工具),你则要自己实现所有的数据验证和序列化 。那么最终您的应用程序会和使用 FastAPI 构建的程序有相同的开销。一般这种数据验证和序列化的操作在您应用程序的代码中会占很大比重。
33- * 因此,通过使用 FastAPI 意味着你可以节省开发时间 ,减少编码错误,用更少的编码实现其功能,如果您不使用 FastAPI,可能会获得同以前相同(或更好)的性能(因为您必须在代码中实现所有功能 )。
32+ * 如果您不使用 FastAPI 而直接使用 Starlette(或诸如 Sanic,Flask,Responder 等其它工具),您则要自己实现所有的数据验证和序列化 。那么最终您的应用程序会和使用 FastAPI 构建的程序有相同的开销。一般这种数据验证和序列化的操作在您应用程序的代码中会占很大比重。
33+ * 因此,通过使用 FastAPI 意味着您可以节省开发时间 ,减少编码错误,用更少的编码实现其功能,并且相比不使用 FastAPI 您很大可能会获得相同或更好的性能(因为那样您必须在代码中实现所有相同的功能 )。
3434 * 如果您想对比与 FastAPI 对标的开发框架,请与能够提供数据验证,序列化和带有自动文档生成的网络应用程序框架(或工具集)进行对比,例如具有集成自动数据验证,序列化和自动化文档的 Flask-apispec,NestJS,Molten 等。
You can’t perform that action at this time.
0 commit comments