بنچمارک های موسسه TechEmpower نشان می دهد که برنامه های **FastAPI** که در حال اجرا تحت Uvicorn هستند ،<ahref="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"> یکی از سریع ترین فریمورک های موجود پایتون است </a> و تنها پایین تر از Starlette و خود Uvicorn (که توسط خود FastAPI در درون استفاده می شود) قرار دارد.
اما هنگام بررسی کردن بنچمارکها و مقایسهها، باید به موارد زیر توجه داشته باشید.
## بنچمارک و سرعت
## بنچمارک و سرعت
هنگام بررسی بنچمارکها، معمولاً مشاهده میشود که چندین ابزار از نوعهای مختلف با یکدیگر مقایسه شدهاند.
@ -17,7 +17,7 @@
* **Uvicorn**:یک سرور ASGI
* **Starlette**: (استفاده میکند از Uvicorn) یک وب میکرو فریم ورک
* **FastAPI** (استفاده میکند از Starlette ) یک میکرو فریمورک API با ویژگیهای بیشتر برای ساختن API ها است، با اعتبارسنجی دادهها و غیره.
* **Uvicorn**:
* این سرور بهترین عملکرد را دارد زیرا به جز سرور خودش، کد اضافی کمتری دارد.
* شما نباید به طور مستقیم یک برنامه را در Uvicorn ایجاد کنید.این بدان معناست که کد شما باید کم و بیش شامل تمام کدهای ارائه شده توسط Starlette (یا **FastAPI**) باشد. و اگر این کار را انجام دهید، برنامه نهایی شما همان هزینه اضافی را خواهد داشت که از یک فریم ورک استفاده کرده باشید و کد برنامه و باگهای خود را به کمترین حالت ممکن رسانده باشید.
@ -32,4 +32,4 @@
* FastAPI ویژگی های بیشتری از Starlette را فراهم میکند مانند اعتبارسنجی دادهها و سریالسازی که تقریبا همیشه هنگام ساختن API به آن نیاز دارید. و با استفاده از آن، اسناد خودکار را ایجاد می کند(مستندات خودکار حتی به برنامه های در حال اجرا باری اضافه نمی کند و در هنگام راه اندازی ایجاد می شود).
* اگر از FastAPI استفاده نمی کنید و مستقیم از Starlette (یا هر ابزار دیگری مانند Sanic، Flask، Responder و...) استفاده می کنید، باید تمام اعتبار سنجی و سریال سازی داده ها را خودتان پیاده سازی کنید.بنابراین برنامه نهایی شما همچنان همان هزینههای اضافی را دارد که اگر با FastAPI ساخته شده باشد.و در بسیاری از موارد، این اعتبارسنجی داده ها و سریال سازی، بیشترین مقدار کد نوشته شده در برنامه ها است.
* بنابراین با استفاده از FastAPI، شما در زمان توسعه، باگها، تعداد خطوط کد و همچنین عملکردی که ممکن است بدست نیاید، صرفهجویی میکنید.
* اگر FastAPI را مقایسه میکنید، آن را با framework کاربردی وب (یا مجموعهای از ابزارها) مقایسه کنید که اعتبار داده، سریالسازی و مستندسازی را ارائه میکند، مانند Flask-apispec، NestJS، Molten، و غیره.framework هایی با اعتبارسنجی خودکار دادهها، سریالسازی و مستندسازی.
* اگر FastAPI را مقایسه میکنید، آن را با framework کاربردی وب (یا مجموعهای از ابزارها) مقایسه کنید که اعتبار داده، سریالسازی و مستندسازی را ارائه میکند، مانند Flask-apispec، NestJS، Molten، و غیره.framework هایی با اعتبارسنجی خودکار دادهها، سریالسازی و مستندسازی.