読者です 読者をやめる 読者になる 読者になる

eAcceleratorでPHPを高速化する

WindowsXPにWordpressをローカルに入れて日記やメモツールとして使っている。しかし投稿画面が立ち上がるのが少々遅い。そこでPHPの高速化を試してみることにする。

使用したのはeAccelerator。他にもPHP高速化モジュールはいくつかあるけどこれが一番高速らしい。インストールには自分のPHPのバージョンに合わせてコンパイルする必要がある。しかしそんなめんどくさいことはしたくないと思っていたら良いサイトがあった。

Windows用eAccelerator - しおからphpスクリプト
http://siokara.que.jp/siokara_eaccelerator.html

ここではコンパイルされたバイナリがバージョン毎に配布しているので感謝しながらそれをそのまま使わせていただけばOK。
今回はphp5.2.1にインストールする。

インストール

  1. php/ext以下にeLoader.dllとeAccelerator.dllを置く。
  2. キャッシュ用のフォルダ(今回はphp/tmp)を作成。
  3. php.iniに下記を追加
[eaccelerator]
extension = eaccelerator.dll
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "D:/bin/language/php/tmp"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys     = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content  = "shm_and_disk"

ちゃんと読み込めてるかテスト

cygwinができるなら

php -i | grep eaccel

とかやってみてエラーが無ければ多分読み込めてる。これでApacheを再起動すればOK。

WordPressでの効果

記事投稿ページの読み込みで試してみた。

導入前 0.18秒
導入後(初回) 0.30秒
導入後(以降) 0.06秒

確かに速くなっている。体感速度的にも若干速くなっているような気がする。しかし描画しきるまでもたつく感じがあるのはJavaScriptまわりだろうか。

参考にしたサイト

eAccelerator - 公式サイト
http://sourceforge.net/projects/eaccelerator/
eAccelerator - あたまがうにになる
http://shohoji.net/blog/archives/001170.html
Windows用eAccelerator - しおからphpスクリプト
http://siokara.que.jp/siokara_eaccelerator.html