2022-03-08
PHPのバージョンごとに処理速度を検証してみた(5.6、7.4、8.0、8.1)
メディアサイト用に使用しているサーバのPHPバージョンが、長らくPHP5.6で運用されており、先日7系へのアップデートを行いました。
8系へ移行したほうが良いかとは思いましたが、8系を導入したことがこれまでになく、影響の範囲を最小限にとどめるため、取り急ぎはPHP7.4への移行を行うことにしました。
かなりいまさら感がありますが、ITリテラシーの低い業界の事業会社など、そういう体質の組織は多いのではないでしょうか。
7系から8系へのアップデートで、随分パフォーマンスが改善されたと聞いていましたが、5系から7系へのアップデートはパフォーマンスはどのような違いがみられるのでしょうか。アップデートのついでに検証してみました。
処理速度を検証してみる
方法はシンプルに、ループ処理を同一回数行わせ比較しました。
検証環境
CPU | Intel Xeon CPU @ 2.20GHz |
メモリ | 1GB |
Apache | 2.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年近く経過したメンテナンスが既に終了しているバージョンを使用するというのは明らかに誤り。速やかに移行することをおすすめします。