気が付いたら、Extras Library(amazon-linux-extras)で PHP8.1 が利用できるようになったようです。
以前、PHP8.0 に気づいたのが2021年2月。
もう2年近く前なんですね。
さきほど、c6g (AWS Graviton2) と c7g (AWS Graviton3) の medium インスタンスを作ってみたので、PHP8.0 と PHP8.1 で速度が変わるのか比較してみようと思います。
こちらのサイトを参考にさせていただきました。PHPソースもありがたく使わせていただきます。
まずは、c6g と c7g のそれぞれに PHP8.0 をインストール。
1 2 3 |
sudo amazon-linux-extras enable php8.0 sudo yum clean metadata sudo yum install php-cli php-opcache |
time コマンドで計測して、real の時間だけ比較してみます。
1 2 3 |
real 0m23.633s ←これだけ user 0m23.608s sys 0m0.020s |
続けて、PHP8.1 を入れようとしたらエラーに。
1 2 |
sudo amazon-linux-extras enable php8.1 Refusing because php8.1 could cause an invalid combination. |
PHP8.0 が有効なまま、PHP8.1 を有効にすることはできないみたい。そりゃそうか。
1 |
sudo amazon-linux-extras disable php8.0 |
いったん、PHP8.0 を無効にします。そのうえで、改めて PHP8.1 を有効にしてみる。
1 |
sudo amazon-linux-extras enable php8.1 |
こんどは無事にできました。
yum で PHP8.0 から PHP8.1 にアップデートします。
1 |
sudo yum update php-cli |
あえて、PHP8.0 をアンインストールしないで試したけど、きちんとアップデートできました。
最終的にこんな感じ。
PHPバージョン | OPcache | c6g (AWS Graviton2) | c7g (AWS Graviton3) |
PHP8.0 | 無効 | 0m24.195s | 0m9.998s |
有効 | 0m23.627s | 0m9.785s | |
PHP8.1 | 無効 | 0m24.223s | 0m10.035s |
有効 | 0m23.455s | 0m9.727s |
PHP8.0 から 8.1 のバージョンアップでは、高速化をうたってるわけではないんですね。
ソースもシンプルなので、OPcache の恩恵もほとんどなく、楽しくない結果に終った。
むしろ、c6g (AWS Graviton2) と c7g (AWS Graviton3) で、これほどまでに処理時間が変わるのかと驚愕した次第です。
Graviton3 すごいです。
ARM系プロセッサなので、JITが使えないことが残念。
と、思ってただけど、まさかの使えるようになった?
1 2 3 4 |
$ php -i | grep JIT PCRE JIT Support => enabled PCRE JIT Target => ARM-64 64bit (little endian + unaligned) JIT => On |
わー! JIT が On だ。すごいじゃないか。これが何よりうれしい!処理時間も速くなった!
ジョン | OPcache | c6g (AWS Graviton2) | c7g (AWS Graviton3) |
PHP8.0 | 無効 | 0m24.195s | 0m9.998s |
有効 | 0m23.627s | 0m9.785s | |
PHP8.1 | 無効 | 0m24.223s | 0m10.035s |
| 有効 | 0m23.455s | 0m9.727s |
+JIT有効 | 0m22.805s | 0m9.378s |
PHP8.0 では、Not Available ということで使えなかった。
1 2 3 4 |
$ php -i | grep JIT PCRE JIT Support => enabled PCRE JIT Target => ARM-64 64bit (little endian + unaligned) JIT => Not Available |
さっそく t4g の本番環境も JIT有効にしてみます!