2022-03-08

PHPのバージョンごとに処理速度を検証してみた(5.6、7.4、8.0、8.1)

PHPに関する記事

メディアサイト用に使用しているサーバのPHPバージョンが、長らくPHP5.6で運用されており、先日7系へのアップデートを行いました。

8系へ移行したほうが良いかとは思いましたが、8系を導入したことがこれまでになく、影響の範囲を最小限にとどめるため、取り急ぎはPHP7.4への移行を行うことにしました。

かなりいまさら感がありますが、ITリテラシーの低い業界の事業会社など、そういう体質の組織は多いのではないでしょうか。

7系から8系へのアップデートで、随分パフォーマンスが改善されたと聞いていましたが、5系から7系へのアップデートはパフォーマンスはどのような違いがみられるのでしょうか。アップデートのついでに検証してみました。

処理速度を検証してみる

方法はシンプルに、ループ処理を同一回数行わせ比較しました。

検証環境

CPUIntel Xeon CPU @ 2.20GHz
メモリ1GB
Apache2.4

※PHPはモジュール版ではなくCGI版を使用

検証コード

for文で1億回ループさせます。

<?php
// 計測開始
$start = microtime(true);
// 処理
exe(100000000);
// 計測終了
$end = microtime(true);

echo "開始: {$start}" . "<br>";
echo "終了: {$end}" . "<br>";
$time = $end - $start;
echo "処理時間: {$time} 秒" . "<br>";

// 処理関数
function exe($num) {
    $hoge = 0;
    for ($i = 0; $i < $num; $i++){
        $hoge += $i;
    }
}
処理内容の出力

さらに10回同じ処理をおこない、平均値を算出することでばらつきを最小限に。

スポンサーリンク

検証結果

結果は下記の通り。5系と7系でパフォーマンスの違いが顕著です。セキュリティ、保守管理の観点はもちろん、パフォーマンスの観点からも5系は使うべきではないですね。

また、予想外だったのが、PHP7.4のほうがPHP8.0よりもパフォーマンスがよかったという結果です。検証回数が少ないと、こういった結果にもなり得るということでしょうか。

検証結果 比較表

今回、ローカル環境も検証してみました。PHP7.4とPHP7.4.15を比較すると、同じ7系であってもスペックによってパフォーマンスが異なることがわかります。同じ処理で約2倍の違いです。

まとめ

今回はシンプルにループ処理を用いてパフォーマンスを(かなりざっくりですが)検証しました。PHPバージョンによって特定の処理に強い、弱いということがありますので、一概にはいう事はできないと思います。

リリースから20年近く経過したメンテナンスが既に終了しているバージョンを使用するというのは明らかに誤り。速やかに移行することをおすすめします。