2016.09.15

【PHP】コードキャッシュ処理が大幅に変わっている

APCの時代は終わってしまったみたい。

APCはAPCuへ

PHPはインタプリタなのでPHPソースを読み込み解析したうえで実行している。
同じソースであれば解析までの処理は同じになるので
先行してキャッシュしようという流れがありました。

そんなライブラリがAPC。
Link:PHP: APC - Manual
これを入れておけばコードキャッシュから実行できるようになったわけです。

しかし、最新版のPHP7(実際はPHP5.5くらい?)からはAPCuというものへ変化してしまいました。
Link:PHP: APCu - Manual
内容もPHP内でデータをKVS化して保存するという単なるデータキャッシュ機能へと変化してしまいました。

コードキャッシュを公式サポート

なぜそんなことになったかというとコードキャッシュを公式サポートしたからみたい。
それがOPcacheらしい。
Link:PHP: OPcache - Manual

OPcacheはソースからのコンパイルだと無理やり外す設定をしない限り標準で機能は組み込まれています。
しかし、設定とかを有効にしたところで自動的にはキャッシュはしてくれないようです。

動作させるには以下の手順が必要。
Link:PHP: インストール手順 - Manual
どこかにopcache.soというのがあるのでそれをzend_extensionとして読み込むようにすればいいらしい。

内容を見る限り、内容的にはZend OPcacheなのでしょう。
Link:PECL :: Package :: ZendOpcache
ものとしてはpeclにて取得可能になっているのでそちらから入れるのが正解かと思います。

APCのように管理画面もあるのかなと思ったら各ユーザーが作る手法らしい。
とりあえず、簡単に設置できそうな以下のもので管理画面として確認できるようにする。
Link:GitHub - amnuts/opcache-gui: A clean, effective and responsive interface for Zend OPcache
設置はindex.phpの配置のみ。


そんな感じでコードキャッシュ周りが相当変わっていて以前の知識が全く使えずに苦労しました。
導入はしてみましたが、速度的には体感できるほどではないかなと思いました。

Pocket

ニャッキ格闘列伝 > プログラム >

前の記事:
次の記事:

コメントリスト

コメントなし

コメント



*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

こんなタグが使えるみたいよ:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>