WPLANG変更によるWordPressの高速化
wp-config.phpのWPLANGの値の変更によるWordPressの高速化(高速化ネタその1の続き)。結論から言うと、レスポンスタイムが、APC(Alternative PHP Cache)を導入した状態からさらに約3割削減となった(1297.319ミリ秒→886.885ミリ秒)。ようやくレスポンスタイムが1秒を切ったことになる。
1.プロファイリング
XHProfを使用して、処理に時間がかかっているファンクションを調査してみると、wp-settings.php
から呼び出されるload_default_textdomain
の処理時間が、全体の処理時間の35%を占めていることが判明。
このファンクションはwp-config.php
のWPLANG
定数の設定値に従い、wp-content/languages/ja.mo
ファイル等を読み込む処理である。このja.moファイルは、簡単に言うと英→日の辞書であり、WordPressはこの辞書を使用して管理画面等を日本語表示する。
本サイトはテーマを自作しており、また、この翻訳機構を必須とするプラグインも導入していないため、ja.moの読み込みは無用である。よって、このファイルを読み込まないよう設定することとした。
2.WPLANG定数の変更
wp-config.php
のWPLANG
定数の値をja(日本語)にするとja.moファイルを読み込んでしまうので、違う値(en(英語))に変更する。ただし、管理画面は日本語表示したいので、ここを参考に、WPLANG定数の定義を以下のように書き換える。
if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === 0) {
define ('WPLANG', 'ja');
} else {
define ('WPLANG', 'en');
}
3.ab(ApacheBench)の結果
abコマンド(ab -c 20 -n 200 http://www.k4750.net/
(20多重で200リクエスト))の実行結果について、前回(APCの導入)との比較を以下に示す。
テスト時間(秒) | 秒間リクエスト数 | リクエスト時間 (ミリ秒)(平均) |
|
初期状態 | 26.370 | 7.58 | 2637.035 |
APC導入後 | 12.973 | 15.42 | 1297.319 |
WPLANG変更後 | 8.869 | 22.55 | 886.885 |
4.余談
ja.moは使用しつつレスポンスタイムを低下させない方法としてMO CacheというWordPressプラグインを使用する選択肢もあるようだが、本サイトではその必要がなかったので、上記対応を行うこととした。