HHVMとPHP 7。最も広汎に使用されているプログラミング言語であるPHPの実行環境として、どちらもよく知られたコンパイラですね(ちなみにHHVMとは、サーバー負荷を減らしてより早いWebエクスペリエンスを提供するために2010年にFacebookによって開発された、HipHop Virtual Machineの略称です)。
ところでこれらは、実際にはどちらのほうが優れたパフォーマンス能力を持っているのでしょうか。
両者を比較するため、パフォーマンステストを行ってみました。
テストサイト詳細
・WordPress 4.4.2
・1000ブログ記事
・2016年デフォルトテーマ
・150ユーザー
・約500コメント
サーバー詳細
・Ubuntu 14.04サーバー
・1GB Ram
・20GB SSD ディスク
・Nginx (キャッシングなし)
・専用VPS
テスト1:Loadstorm テスト
一つのWordPressサイトを同じサーバー上で、10人までの同時使用、10分間という条件でHHVMとPHP7を用いてテストを行いました。
PHP 7
HHVM
2つのテストを比較すると、HHVMのレスポンスタイムは開始時に遅く、大きな上げ下げが見られますが、1分程度経過後にはPHP7に追いつき、よりよい結果を残しています。
HHVMの平均レスポンスタイムは、高い最遅速度にも関わらず、PHP7よりもはるかに速いことが分かりました。初期段階でページをキャッシュするために、初期レスポンスタイムに遅れが見られますが、その後は素晴らしいパフォーマンスを発揮しています。
テスト2:Webページ速度テスト
これは、http://www.webpagetest.org/ によって計測したウェブページのローディングスピードテストです。
PHP 7
HHVM
このテストでは両者ほぼ同程度の結果となりましたが、PHP7のWordPressサイトが若干速い結果となりました。
テスト3:WP Performance Tester プラグイン
最後のテストではWordPressのプラグインである、WP Performance Testerを使用しました。
このテストでは、PHP7 WordPressサイトの合計実行時間の方がHHVMと比べて短く、また1秒ごとの実行クエリー数も多いことから、PHP7のサイトの方が優れたパフォーマンスを発揮したと言えます。
ニーズによる使い分けを
PHP7のパフォーマンスが、PHP5,6と比べてHHVMに近づいてきていることが分かりました。しかしながら、サーバーに対する多数の同時リクエストに対しては未だにHHVMのWord Pressサイトの方が優れた結果を残しています。PHP7に比べてCPU負荷が少ないためです。
サイトのローディングに関してはPHP7はHHVMとほぼ同程度のパフォーマンスを発揮しています。
結論として、現在のところどちらが優れているかは、使用者のニーズによると言えるでしょう。もし適用したいサーバーがマルチコアでHHVMをクラッシュさせることなく稼働できる、または多数の同時アクセスが予想されるのであればHHVMが良いでしょう。あるいはまた、もし安定したWord Pressのプラットフォームで、かつPHP5よりも優れているものを求めている場合には、PHP7がお勧めだと言えそうです。
ぜひ参考にしてみてくださいね。
(※本記事は、HHVM vs PHP 7 Performance Showdown (WordPress, Nginx)を元に編集・再構成したものです。)