BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Webフレームワークのパフォーマンス比較

Webフレームワークのパフォーマンス比較

ブックマーク

原文(投稿日:2014/05/02)へのリンク

TechEmpowerは昨年から、Webフレームワークのパフォーマンスを測定、比較しようと、ベンチマークを走らせてきた。このベンチマークでは「フレームワーク」という言葉がゆるく使われており、ここにはプラットフォームやマイクロフレームワークも含まれている。

最初のベンチマーク結果は2013年4月に公開され、テストは2種類のハードウェア設定(2台のAmazon EC2 m1.largeインスタンスと2台のIntel Sandy Bridge Core i7-2600K (8GB RAM)、いずれもギガビットイーサネットを使用)で実施された。テストは単純なJSONレスポンス{"message" : "Hello, World!"}で応答するというものだった。以下は結果の抜粋で、ベンチマークされた24のWebフレームワークから主要なもの10について、リクエスト/秒(RPS)と最高の結果に対する比率を示している。

1年経ち、ベンチマークは119のフレームワークをカバーするまでに拡大し、複数の種類のクエリとレスポンス、2台のDell R720xd Dual-Xeon E5 v2(それぞれ32GB RAMと10Gビットイーサネット)という追加のハードウェア構成における実行も含まれている。

9ラウンド目のベンチマークが最近公開された。以下はその抜粋だ。今回は3つの異なるハードウェア構成で実施された。

観測結果

RPSについて見ると、ハイエンドなハードウェアはローエンドよりも確かにパフォーマンスがよいが、 Xeon E5とIntel i7にあるように、上位のフレームワークの順位には大きな変動がある。Intel i7の場合、90%を超えているものが多数あることから、TechEmpowerは1Gビットイーサネットによるボトルネックによるものだと考えている

最初のラウンド以来、最高レベルのパフォーマンスのフレームワークおよびプラットオームはギガビットイーサネットによるネットワークの制限を受けていることがわかりました…。十分なネットワーク帯域を使うと、最高レベルのパフォーマンスのフレームワークにはもっと違いが現れてきます。

GoogleのGoはIntel i7でトップだが、すべてのコアを使っているにもかかわらず、Xeon E5ではパフォーマンスが大きく落ちている。TechEmpowerによると、これは特定のタイプのハードウェアアーキテクチャに対するパフォーマンスチューニングの重要性を表しているという。

Peak [Xeon E5]テスト環境は2つのE5プロセッサで40 HTコアのサーバを使っており、結果はそれぞれのフレームワークがいかにうまく単一サーバノードにおける高い並列性にスケールするかを示しています。

もちろん、HTプロセッサコアの数(40に対してi7テストの場合は8)、異なるシステムアーキテクチャ、NUMAといった、他の変数の影響もあります。

Amazon EC2 M1.largeは他に比べてかなりパフォーマンスが低く、クラウドコンピューティングインスタンスとして費用/性能比が魅力的なのか疑問を抱かせるものだ。

-*) 多くのフレームワークはLinuxベースだ。EC2やi7ではWindowsフレームワークはベンチマークされていない。最高のWindowsフレームワーク(plain-windows)のパフォーマンスはE5のトップの18.6%だ。また、FacebookのHHVMはEC2にはない。また、HHVMをFacebookのハードウェア上で動かしたときには、かなりチューンされているだろう。

よく知られているGrails、Spring、Django、Railsといったフレームワークは、使われたハードウェア構成すべてでかなりパフォーマンスが低い。

最近リリースされたDart 1.3のパフォーマンスは2倍になっているのでNode.jsに匹敵するはずだが、このラウンドではDart 1.2が使われているので、ベンチマークには表れていない。これは最近改善された別のフレームワークにも当てはまるかもしれない。こうした改善は今後のベンチマーク結果に表れるだろう。

他のパフォーマンスベンチマークと同様、結果はハードウェア、ネットワーク、システム構成に依存しており、異論もあるだろう。TechEmpowerはお気に入りのフレームワークの結果を向上させることに関心のある人たちに向けて、GitHubにあるコードをフォークするようすすめている。

ベンチマークには、テストの実施方法、そのハードウェア構成、各フレームワークのコンポーネント(言語、Webサーバ、OSなど)の詳細な説明が含まれている。

この記事に星をつける

おすすめ度
スタイル

BT