APC (Alternative PHP Cache) を使ってみた

APC (Alternative PHP Cache) は PHP の実行コードをキャッシュするモジュール。追加するだけでパフォーマンスをアップできる。また、実行コードだけでなく、任意のオブジェクトのキャッシュもできる(最近知った)。

http://php.net/manual/ja/book.apc.php

インストール

 # aptitude install php-apc php5-gd

設定

/etc/php5/conf.d/apc.ini

パラメータ 内容 デフォルト値
apc.shm_size 共有メモリ容量(MB) 30
apc.numfiles_hint キャッシュ対象のファイル総数 1000
apc.filters キャッシュ対象外のルール(正規表現)

管理画面

管理画面:

 # gzip -d /usr/share/doc/php-apc/apc.php.gz -c > /var/www/apc.php

apc.php 設定変更:

<?php
defaults('ADMIN_USERNAME','apc');
defaults('ADMIN_PASSWORD','password');

データキャッシュ

関数名 機能
apc_fetch() データ取得
apc_store() データセット

一点注意点が: http://www.php.net/manual/ja/function.apc-store.php#70822
オブジェクトの参照は1階層目のみしか保存してくれないとのこと。
たとえば、配列を apc_fetch したとき、キーは取得できても値は null が入っている。
解決法としては、オブジェクトに対して serialize(), unserialize() を使ってやること。
他に ArrayObject を使うとよいとも書かれてあるが、試していない。