開発に関わったWordPressの実行速度を短縮させるプラグイン「001 Prime Strategy Translate Accelerator」がリリースされたので、ここでも紹介させていただきたいと思います。
WordPressを日本語で表示させる場合には、英語と日本語を対訳させるja.moというファイルを読み込んでいます。実を言うと、このファイルの読み込みには結構な時間がかかっていて、なおかつバージョン毎にファイルサイズが大きくなってきています。
当ブログの計測値では、この処理だけで約0.1秒。現状のSimple ColorsではWordPressだけの処理時間で約0.3秒なので、全体の処理時間の約30%がこのファイル読み込みにかかっている計算になります。
001 Prime Strategy Translate Acceleratorでは、このファイル読み込みをキャッシュ化し、およそ半分程度に短縮させる。もしくは、ファイルそのものの読み込みを停止し、この部分のコストをほぼ0にしてしまうことも出来ます。(翻訳自体がされないことになりますが、多言語対応してない独自テーマなどであれば、このモードが有効です)
実行時間比較
下記は、Simple Colorsでの翻訳ファイル読み込みにかかる時間を各モードで10回ずつ計測した表になります。
表から見ての通り、通常(Default)では、0.09秒なのに対し、ファイルのキャッシュモードでは、0.05秒。APCのキャッシュモードでは、0.04秒まで短縮し、停止モードでは、ほぼゼロコストとなります。(英語版と日本語版のパフォーマンス差とも言えますね。)
計測方法は、wp-settings.phpのファイル読み込み関数前後の時間を計測し、その差分で計測しています。
$before = timer_stop(); // Load the default text localization domain. load_default_textdomain(); echo timer_stop() - $before;
利用方法
インストール
公式ディレクトリから、001 Prime Strategy Translate Acceleratorをダウンロードし、pluginsディレクトリにアップロードしてください。公式プラグインとして公開していますので、管理画面のプラグインの新規追加からもインストールは可能です。
キャッシュディレクトリへの書き込み権限追加
アップロードしたディレクトリの中にcacheというディレクトリがありますので、このディレクトリにPHPの書き込み権限を与えます。(777等)
プラグインの有効化
インストール済みプラグインのリストにある「001 Prime Strategy Translate Accelerator」を有効化してください。
プラグインの設定
設定メニューに「Translate Accelerator」メニューが追加されますので、設定ページへ移動し、プラグインの設定を行います。
- キャッシュを有効にする
- プラグインの機能を有効化させるかどうかの設定です。利用する場合はチェックを入れて下さい。
- キャッシュタイプ
- 翻訳ファイルのキャッシュタイプを選択します。APC3.0以上がインストールされていない場合、APCの選択肢は表示されません。
- キャッシュのディレクトリー
- ファイルキャッシュの格納先を指定します。空欄の場合はデフォルト(インストールしたディレクトリ内のcacheディレクトリ)が利用されるので、必要がなければ特に入力する必要はありません。
- サイト表示の翻訳
- ブログ、サイトを表示する際の読み込みモードを指定します。選択肢は、「キャッシュを使用」「翻訳を停止」「通常翻訳」の3つになります。
- ログイン/サインアップ画面の翻訳
- ログイン・サインアップページを表示する際の読み込みモードを指定します。選択肢は、「キャッシュを使用」「翻訳を停止」「通常翻訳」の3つになります。
- 管理画面の翻訳
- 管理画面を表示する際の読み込みモードを指定します。選択肢は、「キャッシュを使用」「翻訳を停止」「通常翻訳」の3つになります。
- キャッシュを削除
- WordPress本体、プラグインなどをバージョンアップした際、翻訳ファイルの更新により、未翻訳の部分が残る場合があります。これにチェックをして、変更を保存することで、キャッシュのクリアを行うことができます。なお、更新直後は前のキャッシュが残るため、直後は変更が反映されません。
表示速度については、ユーザビリティーだけでなく検索順位についても影響があると言われていますから、気をつけていきたいところですね。
そこに気づかれましたか。実はまったく同じことをするプラグインを5年ほど前に作りました(未公開)。最近のサーバーのスペックだと体感できるほどの差はでないかもしれませんが、当時のへぼいサーバーだと結構な差がでました。全読み込みする場合は MO のようなバイナリのハッシュファイルよりテキストファイルの方が速かったりしますので、将来的には WordPress のコアにおいて見直されるべき箇所であると思います。