PHP7対応で確実に改善されるCPIのレスポンス速度

PHP7対応のレンタルサーバーが増えてきており、KDDIウェブコミュニケーションズのCPI(シーピーアイ)もいち早く対応しています。PHP7以外にも複数バージョン(5.5が標準)に対応しており、ディレクトリ単位で設定できます。ドメイン単位で指定するサービスと異なり、柔軟な設定が可能です。

PHP7の大きな特徴は「PHP5の2倍以上の実行速度」となっており、今後レンタルサーバーを検討する際、PHP7対応は必須条件です。ここではPHP5とPHP7で稼働させたウェブサイトのレスポンス速度を比較し、CPIにおけるPHP7の効果を確認します。

測定方法

測定用サーバーから定期的にアクセスして、ウェブページ(WordPressサイト)の取得に要する時間を測定します。より詳しい内容は こちら を参考にしてください。

測定期間は 7日間 であり、5分ごとに2回の測定を行います。つまり、「7日×24時間×12回(60/5)×2回」の約4,000回となります。

hostingstockの測定結果について
端末(パソコンやスマートフォン)のレンダリング等の処理時間を含みません。理由は訪問者の端末の性能により、処理時間が大きく異なるためです。つまり、測定結果はウェブページを構成するデータを受信するために必要な時間を示しています。実際にウェブページが表示されるまでには、HTML解析やJavaScript処理などを含む描画時間が加算されます。

測定結果

測定結果について
動的ページ(WordPress)の比較となります。グラフのX軸は7日間を4時間毎に区切ったものです。また、色の付いている部分は夜間(18:00~02:00)を示しています。
変動係数は「平均値に対する変動の割合」を示します。平均値(処理時間)が同じであっても、変動係数が大きい方の処理時間がばらつくことになります。
  PHP7 PHP5
有効測定 4,032回 4,032回
棄却検定除外 1.02% (41) 1.51% (61)
棄却検定閾値 1.17秒 1.17秒
エラー 0% (0) 0% (0)
3秒以上 0% (0) 0% (0)
中央値 0.84秒 0.92秒
平均値 0.85秒 0.93秒
ばらつき/標準偏差 0.06秒 0.05秒
変動係数 7.06% 5.38%

PHP7の効果

同時期に同じ環境で測定した結果です。測定対象サイトのコンテンツは完全に同じ構成であり、異なるのはPHPのバージョンのみです。

PHP5からPHP7に変更することで 1割弱 の改善を確認できます。t検定による有意差(p<0.01)を確認でき、まったく同じ環境(サーバー)であっても、PHPバージョンの差でレスポンス速度が有意に変化することが分かります。

PHP7の実行速度はPHP5より確実に高速化されています。しかし、ウェブサイトのレスポンス速度はデータベースやネットワーク(バックボーン)の性能も大きく影響します。PHP7を導入しただけでは、レスポンス速度が劇的に改善されることはありません。

CPIに限らず、他のサービスでも1割程度の改善に留まります。

とはいえ、測定対象(WordPressサイト)は「プラグインなしの標準テーマ」となっています。例えば「多機能なWordPressテーマを採用している」「多くのプラグインを導入している」などの条件であれば、PHP7の効果が大きくなるでしょう。すでにPHPの処理速度がボトルネックと判明しているサイトであれば、PHP7の恩恵がより大きくなります。

レンタルサーバーの中でも屈指の安定性と処理性能を持つCPIですが、PHP7対応など仕様的(機能的)にも非常に充実しています。法人だけでなく個人用途でも契約可能なので、予算に余裕があれば検討するべきサービスです。

他のレンタルサーバーとの比較

公式サイト   WordPress Static
環境 平均値 秒中央値 秒標準偏差 秒エラー %平均値 秒中央値 秒標準偏差 秒エラー %

0.210.210.0100.210.210.010

PHP5/CGI

0.240.220.0500.430.540.20

PHP7/CGI

0.240.210.0700.240.210.060

0.250.230.060.020.260.230.080.42

Xキャッシュ

0.290.250.0900.280.250.070

0.370.350.0800.360.350.050

0.380.370.0500.570.660.190

PHP7/FastCGI

0.40.40.1200.230.220.030

WordPressサーバー

0.420.350.200.40.350.150

0.430.470.2100.430.220.310

PHP7/FastCGI

0.450.450.1500.290.260.090

PHP7

0.460.450.030.050.350.310.10.02

キャッシュ無効

0.470.520.1500.430.540.210

PHP5/FastCGI

0.470.470.1200.230.220.030

0.540.70.2500.360.330.090.02

PHP5/FastCGI

0.550.540.1700.330.290.110

0.620.620.030.10.410.340.140.17

PHP7

0.620.590.3200.380.310.20

PHP7/Module

0.620.590.1100.40.390.040

キャッシュ無効

0.620.610.1200.380.370.050

PHPサーバー

0.620.70.2600.340.290.10

PHP5

0.630.620.0300.320.310.030

PHP7

0.630.590.3300.370.310.180

0.640.610.100.480.450.090

PHP7/CGI

0.660.620.1200.390.380.050

0.6600.2200.6600.230

0.670.650.070.150.520.470.140.15

キャッシュ

0.680.680.0600.690.690.060

PHP7/CGI

0.70.680.0900.510.490.070

PHP5

0.710.690.3300.370.30.180

0.710.730.300.350.310.110

0.720.710.0500.240.240.010

0.750.630.3100.560.470.290

PHP5

0.750.70.3700.370.310.160

モジュール

0.80.750.160.150.370.360.060.1

0.830.790.3900.340.280.150

PHP7

0.840.80.2600.740.690.160

PHP7

0.840.840.1400.670.670.060

PHP7

0.850.840.0600.670.660.050

PHP7

0.880.840.160.750.610.570.10

0.910.860.1600.510.490.070

0.920.880.200.640.610.240

0.930.920.0500.650.650.040

PHP5

0.930.920.1600.670.670.060

0.950.950.1200.520.50.080

CGI

0.950.90.1600.390.370.070

PHP5/FastCGI

0.970.960.40.150.420.410.070.07

PHP5

10.980.3100.770.80.140

PHP5/CGI

1.040.80.7700.530.490.110

1.051.010.1200.810.740.190

PHP5

1.11.050.1600.60.560.10

1.141.140.0400.270.260.020

ライトプラン

1.441.221.300.510.370.670

1.961.920.630.021.631.560.590.02

2.091.71.070.931.241.170.420.6

2.2300.650.111.9100.60.07

PHP5/FastCGI

2.722.550.670.072.412.170.660.07

PHP5/FastCGI

2.92.780.510.352.522.370.430.15

PHP7/FastCGI

2.922.80.530.272.572.460.360.22

PHP7

3.181.572.340.350.710.710.180.22

PHP5

3.31.532.470.50.720.720.180.45

3.363.090.630.022.892.720.350

3.7800.50.073.7700.510.1

4.564.530.3104.244.220.340

5.75.720.830.025.135.140.810.02

8.056.723.081.687.826.43.231.41

00000.340.290.150

00006.136.270.450

当サイトで測定済みのレンタルサーバーとの比較です。詳細は各リンク先を確認してください。

注意
最新の測定結果を優先的に表示するため、記事作成時の評価とこの比較結果(表のデータ)が異なる可能性があります。

測定結果

PHP7の測定結果を掲載しておきます。PHP5の測定結果は こちら にあります。

  動的ページ 静的ページ
有効測定 4,032回 4,032回
棄却検定除外 1.02% (41) 2.65% (107)
棄却検定閾値 1.17秒 0.94秒
エラー 0% (0) 0% (0)
3秒以上 0% (0) 0.02% (1)
中央値 0.84秒 0.66秒
平均値 0.85秒 0.67秒
ばらつき/標準偏差 0.06秒 0.05秒
測定結果について
測定実行のタイミングによりサーバーやネットワークの状態(混雑具合)が変動します。集計に影響を与える一時的な異常値(外れ値)を棄却検定「Grubbs' test(α=0.001)」により省いています。これは測定サーバー側の異常を省く意味もあります。
生データ(未加工データ)の測定結果は最後に掲載しています。
ばらつき(標準偏差)は、レスポンスの 約68%平均値 ± ばらつき に、 約95%平均値 ± ばらつき×2 に収まることを示します。つまり、ばらつきが小さいほどレスポンスが安定していることになります。

測定結果(未加工データ)

  動的ページ 静的ページ
3秒以上 0% (0) 0.02% (1)
中央値 0.84秒 0.66秒
平均値 0.86秒 0.69秒
ばらつき/標準偏差 0.10秒 0.12秒

測定結果について!
レンタルサーバーは、一つのサービス(プラン)に対して多数のサーバーが運用されています。これらの測定結果は、その中の一つに過ぎません。契約時期により割り当てられるサーバーのスペックは異なる可能性があります。また、同じサーバーを利用する他ユーザーの負荷も影響します。

関連記事

BLOG

UPDATE