PHP
PHP7
PHP7.3

PHP7.3はこれまでよりもさらにパフォーマンスが向上している

2018/11/22にPHP7.3.0 RC6がリリースされました。
計画ではこれが最後のRCで、次は2018/12/06にPHP7.3.0正式版がリリースされる予定です。

そのRC6のパフォーマンスを測定してる記事を見つけました。
以下はPHP 7.3 Performance Benchmarks Are Looking Good Days Ahead Of Its Releaseの日本語訳です。

PHP 7.3 Performance Benchmarks Are Looking Good Days Ahead Of Its Release

PHP7.3 RC6は、12月6日に正式リリースが予定されているPHP7.3の最終RC版です。
RC6での変更点はこちらに概略があります。

01.jpg
先日、PHP 5.5.38、PHP 5.6.38、PHP 7.0.32、PHP 7.1.24、PHP 7.2.12、そしてPHP 7.3.0-RC6でベンチマークを取ってみました。
全てのPHP5/7は同じ設定でビルドしています。
全てのテストはDell PowerEdge R7425 dual EPYC serverのUbuntu 18.10上で行いました。

02.png
PHP7はパフォーマンスを進化させ続けているだけではなく、PHP7.3にはC言語の関数・変数・データ構造へアクセスするためのFFI(Foreign Function Interface)、プラットフォームに依存しない方法でネットワークインターフェイスへの接続、is_countable、GDのWebPサポート、新たなSQLiteサポート、ガベージコレクションの改良など多くの機能も含まれます。

03.png
PHP7.3は、PHPBenchのテストでPHP7.2より10%高速に動作しました。
7.0よりも31%高速で、PHP5に比べると3倍のスピードです。

04.png
05.png
PHP Micro Benchmarksでは、PHP7.3では少しだけ早くなりました。

06.png
我々が独自に作成しているPhoronix Test Suiteのテストにおいては、PHP7.3は非常に優れた結果を残しました。
PHP7になって以降、最大の飛躍となっています。

07.png
たくさんのファイルアクセスとXMLパースを行う"list suites"テストは、ほんのわずかに早くなりました。

08.png
XMLをパースしてDOMを構築しSVGを生成する処理は、PHP7.3で劇的に高速化しました。

09.png
マージを行うテストは順当に少しだけ早くなりました。

全体として、PHP7.3は継続的なパフォーマンス改善がなされ、またその他の新規追加機能のために、注目すべき価値のある重要なアップデートといえます。

コメント欄

「PHP開発者の仕事は素晴らしい!ありがとう!XAMPPもすぐに追随してくれると嬉しいな。」
「いいことだ。もっと前に改善してくれればもっとよかったけど。PHP7.4でPreloading」が入るからそっちにも期待。」
「うちもベンチマーク比較やってみた。」
「PHPの進化はめざましい。いまだにGlobalsを使っていてストアドプロシージャを使ってない開発者は処すべき。」
「ストアドプロシージャ?ORM使ってないのかORM使うべき。」
以降なぜかORM論争に入る。

感想

PHPでFFIってエクステンションはあるんだけど、7.3でネイティブ対応してたっけ?

独自のテストスイートというのはこちらのようです。
記事中には具体的なコードが全然出てこないし、どのテストを行ったか、あと結果の数値が何なのかとかそこらへんがわかりにくいので、詳細とソースコードへのポインタなどをつけてくれるとありがたいのですが。
それにPHPBenchやPHP Micro Benchmarksへのリンクもないですし。

しかし詳細はともかく、PHP5より7.0、7.0より7.1、7.1より7.2、7.2より7.3が着実に早くなってきていることは間違いないようです。
そもそもPHP5から7に差し替えるだけで倍以上早くなるので、未だにPHP5を使っているようであれば速やかに移行しましょう。
5系最後の5.6も2018/12/31にセキュリティサポートが終了することですし。

ところでこの記事が何故か本家slashdotのストーリーになってたのですが、コメント欄が醜いことになっていました。
もしかして本家slashdotの治安って日本語版sradよりアレなんじゃなかろうか。