PHP7から定数配列がOPcacheに乗るのでKVSを置き換えられるかもしれない話
from PHPerKaigi 2021
https://fortee.jp/phperkaigi-2021/proposal/3a85b3f7-71f1-4421-bf1f-3f9c7cd9e1d7
hnw
PHPでは配列の初期化処理がopcode列にコンパイルされて実行されるため、巨大配列の初期化は実行時にコストがかかっていました。
ところが、PHP 7からは定数だけで構成された配列リテラル(=定数配列)をコンパイル時に生成して利用するように変わっています。
さらに定数配列はOPcacheのキャッシュ対象になっているため、キャッシュヒットすれば巨大な定数配列を生成コストなしで使えるようになっています。
本トークでは技術的背景を簡単に説明した上で、定数配列とKVS(APCu・memcached・Redis)で同じ機能を実現した場合の性能比較を行います。