|
この記事は、HelloGitHubが執筆したWeChat公式アカウント「HelloGitHub」からの転載です。転載の許可については、HelloGitHub公式アカウントまでお問い合わせください。 オープンソースの世界では、数え切れないほどのオープンソースのウェブフレームワークが生まれています。GitHubで「ウェブフレームワーク」を検索すると、56,000件以上のオープンソースプロジェクトが見つかります。それぞれ独自の機能を持ち、複数の言語をカバーしています。 Web開発経験のあるプログラマーなら、おそらく複数のWebフレームワークを挙げ、その利点をすぐに説明できるでしょう。例えば、私が使用したPython Webフレームワークには、Django、Tornado、Flask、FastAPIなどがあります。これらのフレームワークはそれぞれ独自の機能を持っています。
様々なWebフレームワークは、様々なシナリオやニーズに対応する際にそれぞれ長所と短所を持っているため、どれが最高かを判断するのは困難です。しかし、速度という観点から比較すれば、勝者は必ず見つかります!本日ご紹介するオープンソースプロジェクトは、最速のオープンソースWebフレームワークを見つけることを目指しています。 プロジェクトアドレス: https://github.com/the-benchmarker/web-frameworks 導入web-frameworks は、さまざまなオープンソース Web フレームワークのパフォーマンス テスト レポートを定期的に公開し、どれが最も高速であるかを教えてくれるプロジェクトです。 Rubyで記述されており、まずDocker経由でテスト対象のWebフレームワークを起動し、次にwrk負荷テストサービスを使用し、最後にテストレポートをウェブサイトに公開します。結果は検索機能と並べ替え機能をサポートしており、プロセス全体が完全に自動化されています。 具体的なテストパラメータとマシン構成: wrk: 負荷テストをサポートし、テスト レポートを出力する HTTP ベンチマーク ツール。 wrkのパラメータは、スレッド数8(-t)、読み込み時間15秒(-d)で、同時実行モード(-c)でそれぞれ64、256、512スレッドの3つの負荷テストを実行しました。レポートの関連データを示すため、ローカルマシンでwrkを使用してJuejinウェブサイトで負荷テストを実行しました。
結果と用語集: マシン構成:
プロジェクトで行われたすべてのテストは、同一構成のマシンを使用して実施され、関連コードはすべてオープンソースです。私たちは公平性、公正性、そして完全な透明性の確保に努めています。テスト結果は、Webフレームワークのリリースに合わせて更新されます。 Web フレームワークの最新のテスト レポートを見てみましょう。 最速のフレームワークWeb フレームワークによって測定された平均レイテンシ (低い順から高い順に並べられています)。 1. ニッケル星の数: 2.9k | 言語: Rust https://github.com/nickel-org/nickel.rs Express.js にインスパイアされた Rust ウェブフレームワーク。サンプルコード:
2.鉄星の数: 5.9k | 言語: Rust https://github.com/iron/iron コード例:
スペースの制限により、このセクションではレポートの上位 2 つのフレームワークのみを紹介します。 最も耐久性のあるフレームWeb フレームワークによって測定された 1 秒あたりに処理されるリクエストの平均数 (高い順から低い順に並べられています)。 1. アクティブJ星の数: 286 | 言語: Java https://github.com/activej/activej Web、高負荷、マイクロサービスアプリケーションに適したJavaフレームワーク。サンプルコード:
2. httpbeast星の数: 239 | 言語: Nim https://github.com/dom96/httpbeast コード例:
スペースの制限により、このセクションではレポートの上位 2 つのフレームワークのみを紹介します。 フィーリングこの Web フレームワーク テスト レポートを確認した後、Rust で記述された Web フレームワークが、さまざまなパフォーマンス メトリック テストで一貫してトップ パフォーマーとしてランク付けされ、Rust がパフォーマンスに関してその評判に本当に応えていることが証明されました。 もちろん、パフォーマンスだけがWebフレームワークを選ぶ基準ではありません。本日このプロジェクトを執筆した目的は、Webフレームワークを選ぶ際に皆様の参考となる情報を提供することです。さらに、このレポートには、あまり知られていないものの、個性的なWebフレームワークもいくつか掲載されており、おもちゃのプロジェクトとして気軽に試してみることができます。もしこれらのフレームワークがいつか人気になったとしても、あなたは既に先行して使いこなせるようになっているかもしれません。 最終的に、Webフレームワークのテスト結果には合計237個のWebフレームワークが含まれていました。これは大きな数ではありませんが、その数は依然として増加傾向にあります。さらに、多くのWebフレームワークが問題解決への「参戦」を表明しています。オープンソースコミュニティの力によって、このプロジェクトはますます発展しており、その様子を見て安心しました。 この記事はこれで終わりです。このオープンソースプロジェクトが、パフォーマンス上の優位性をもたらす、最も高速で堅牢なWebフレームワークを見つける一助となることを願っています。 |