PHP8系で追加されたJIT(Just-In-Time)の設定方法
PHP8系でOPcacheの拡張機能としてJIT(Just-In-Time)という仕組みが新たに追加されたらしい。これを利用することで実行速度が上がるとのこと。以下にJITの設定方法をメモ。
目次
公式サイト
RFC
JIT関連の設定リファレンス
https://www.php.net/manual/ja/opcache.configuration.php#ini.opcache.jit
導入方法
php.ini変更
サーバにSSH接続し、php.iniのバックアップを取った上で編集する。
cd /etc cp php.ini php.ini.【日付】 vi php.ini
以下をphp.iniの最終行付近に追記する。
[JIT] zend_extension = opcache opcache.enable = 1 opcache.jit = tracing opcache.jit_buffer_size = 128M
「:wq」で上書き保存し以下で再起動。
systemctl restart php-fpm
phpinfo()で「opcache.jit_buffer_size」が反映されていればOK。
尚、JIT関連の設定は公式ページの通り大半が「INI_SYSTEM」となっているためphp.iniもしくはhttpd.confでの設定になる。つまり.user.iniでは設定できない項目が多い点に注意する。
速度比較
単純なループのプログラム
以下のような単純なループのプログラムの場合、JITの有無ではほぼ実行速度は変わらなかった(元々OPcacheは利用している環境)。
for( $i = 1; $i < 100000000; $i++ ){ }
PageSpeed Insights
PageSpeed Insightsで当サイトをチェックしたところ以下の通り微妙にパフォーマンスアップに繋がった。
JIT有り
JIT無し
その他
WordPressへの影響
以前APCuを導入した際にWordPressのシンタックスハイライト系のプラグインと干渉を起こしたが、今回は特に影響は無さそう。
所感
WordPressへの影響は今のところ見当たらないので一安心。あとはメモリの消費具合が気になるが、こちらについてはある程度期間を設けて様子見しないと何とも言えないところ。当面様子見して何か問題があれば追記する。
関連記事
-
PHPでis_fileとfile_existsについて
ファイルの存在チェックを行う際に、file_exists関数を 使用していたが、 ...