]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Japanese translation for Benchmarks (#1992)
authorTaki Komiyama <39375566+komtaki@users.noreply.github.com>
Sat, 17 Oct 2020 18:43:43 +0000 (03:43 +0900)
committerGitHub <noreply@github.com>
Sat, 17 Oct 2020 18:43:43 +0000 (20:43 +0200)
Co-authored-by: atsumi <atsumi.tatsuya@gmail.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
docs/ja/docs/benchmarks.md [new file with mode: 0644]
docs/ja/mkdocs.yml

diff --git a/docs/ja/docs/benchmarks.md b/docs/ja/docs/benchmarks.md
new file mode 100644 (file)
index 0000000..966d199
--- /dev/null
@@ -0,0 +1,34 @@
+# ベンチマーク
+
+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フレームワークの1つ</a>であり、下回っているのはStarletteとUvicorn自体 (FastAPIによって内部で使用される) のみだと示されています。
+
+ただし、ベンチマークを確認し、比較する際には下記の内容に気を付けてください。
+
+## ベンチマークと速度
+
+ベンチマークを確認する時、異なるツールを同等なものと比較するのが一般的です。
+
+具体的には、Uvicorn、Starlette、FastAPIを (他の多くのツールと) 比較しました。
+
+ツールで解決する問題がシンプルなほど、パフォーマンスが向上します。また、ほとんどのベンチマークは、ツールから提供される追加機能をテストしていません。
+
+階層関係はこのようになります。
+
+* **Uvicorn**: ASGIサーバー
+    * **Starlette**: (Uvicornを使用) WEBマイクロフレームワーク
+        * **FastAPI**: (Starletteを使用) データバリデーションなどの、APIを構築する追加機能を備えたAPIマイクロフレームワーク
+
+* **Uvicorn**:
+    * サーバー自体に余分なコードが少ないので、最高のパフォーマンスが得られます。
+    * Uvicornにアプリケーションを直接書くことはできません。つまり、あなたのコードには、Starlette (または** FastAPI **) が提供するコードを、多かれ少なかれ含める必要があります。そうすると、最終的なアプリケーションは、フレームワークを使用してアプリのコードとバグを最小限に抑えた場合と同じオーバーヘッドになります。
+    * もしUvicornを比較する場合は、Daphne、Hypercorn、uWSGIなどのアプリケーションサーバーと比較してください。
+* **Starlette**:
+    * Uvicornに次ぐ性能を持つでしょう。実際、StarletteはUvicornを使用しています。だから、より多くのコードを実行する必要があり、Uvicornよりも「遅く」なってしまうだけなのです。
+    * しかし、パスベースのルーティングなどのシンプルなWEBアプリケーションを構築する機能を提供します。
+    * もしStarletteを比較する場合は、Sanic、Flask、DjangoなどのWEBフレームワーク (もしくはマイクロフレームワーク) と比較してください。
+* **FastAPI**:
+    * StarletteがUvicornを使っているのと同じで、**FastAPI**はStarletteを使っており、それより速くできません。
+    * FastAPIはStarletteの上にさらに多くの機能を提供します。データの検証やシリアライゼーションなど、APIを構築する際に常に必要な機能です。また、それを使用することで、自動ドキュメント化を無料で取得できます (ドキュメントは実行中のアプリケーションにオーバーヘッドを追加せず、起動時に生成されます) 。
+    * FastAPIを使用せず、直接Starlette (またはSanic, Flask, Responderなど) を使用した場合、データの検証とシリアライズをすべて自分で実装する必要があります。そのため、最終的なアプリケーションはFastAPIを使用して構築した場合と同じオーバーヘッドが発生します。そして、多くの場合、このデータ検証とシリアライズは、アプリケーションのコードの中で最大の記述量になります。
+    * FastAPIを使用することで、開発時間、バグ、コード行数を節約でき、使用しない場合 (あなたが全ての機能を実装し直した場合) と同じかそれ以上のパフォーマンスを得られます。
+    * もしFastAPIを比較する場合は、Flask-apispec、NestJS、Moltenなどのデータ検証や、シリアライズの機能を提供するWEBフレームワーク (や機能のセット) と比較してください。これらはデータの自動検証や、シリアライズ、ドキュメント化が統合されたフレームワークです。
index 50a0dcc49915a56d283f6990f17948a2cf3fed08..958594b396ac37831368f99dcde56f8a7353d87b 100644 (file)
@@ -44,6 +44,7 @@ nav:
   - tutorial/query-params.md
   - tutorial/body.md
   - tutorial/header-params.md
+- benchmarks.md
 - help-fastapi.md
 markdown_extensions:
 - toc: