勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHP8系で追加されたJIT(Just-In-Time)の設定方法

  PHP

PHP8系でOPcacheの拡張機能としてJIT(Just-In-Time)という仕組みが新たに追加されたらしい。これを利用することで実行速度が上がるとのこと。以下にJITの設定方法をメモ。

 

公式サイト

RFC

https://wiki.php.net/rfc/jit

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

  関連記事

PHP Qr Codeライブラリを使用してQRコードを生成する方法
PHP Qr Codeライブラリを使用してQRコードを生成する方法

PHPでQRコードを生成したい。大分前にGoogle Chart APIを用いて ...

wp_mail関数でエンベロープFrom(Return-Path)が指定できない場合の対応方法
wp_mail関数でエンベロープFrom(Return-Path)が指定できない場合の対応方法

WordPress内に設置されたお問い合わせのフォームようなシステムでエンベロー ...

PHPで画像にモザイクをかけて保存
PHPで画像にモザイクをかけて保存

やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...

PHPでサイトマップを動的に生成する方法
PHPでサイトマップを動的に生成する方法

WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイト ...

CodeIgniterのバージョンの調べ方
CodeIgniterのバージョンの調べ方

CodeIgniterを使っているシステムがあったが、どうも記憶しているディレク ...