オブジェクトキャッシュと連携して機能する、WPML 3.1.9の最初のベータ版を発表できることを大変嬉しく思います。多数の文字列を持つ大規模サイトで大幅なパフォーマンス向上を求めている場合、これは最適です。
WPMLの文字列翻訳は非常に重要な機能を果たし、.moファイルを介さずに文字列を翻訳できるようにします。これは、PHPコードに保存されずデータベース内に作成される動的な文字列において特に重要です。
WPML 3.1.9は、大幅なパフォーマンス向上に向けた第一歩です。このステップでは、オブジェクトキャッシュプラグインが繰り返されるアクセスを捕捉し、それらを排除できるようにします。さまざまなキャッシュ手法を試した結果、最終的に最もパフォーマンスが高かった「WPML内でキャッシュしない」という方法に落ち着きました。少し驚かれるかもしれませんが、これは理にかなっています。キャッシュプラグインは、操作をグループ化し、より大きく高速なチャンクとしてメモリに保存しようとします。WPML自体が文字列をキャッシュしようとすると、オブジェクトキャッシュが無意味になってしまっていたのです。
今回のリリースでは、キャッシュを完全にクリーンアップし、データベースへのアクセスを最適化し、すべてをオブジェクトキャッシュにアクセスできるようにしました。これにより、ロジックが簡素化され(PHPの処理が減り、不具合の可能性が低下します)、オブジェクトキャッシュがその役割を果たせるようになります。
文字列翻訳の負荷はページ全体の負荷の大部分を占めていなかったため、多くのサイトではパフォーマンスの向上をほとんど実感できないかもしれません。しかし、多数の文字列を持つ一部のサイトでは、大幅な改善が見られます。オブジェクトキャッシュがなくても、データベースクエリの数はすでに大幅に減少しているはずです。さらに、オブジェクトキャッシュを有効化することで、さらなる改善が見込めます。
W3TCでオブジェクトキャッシュを有効化する方法
オブジェクトキャッシュには、少しの計画とセットアップが必要です。必要な要素のリストは以下のとおりです。
- opcache PHPプラグイン(WordPressプラグインと混同しないように注意)
- PHP < 5.5の場合 => APCを使用し、十分なメモリ(大規模サイト(主にWCML)の場合は128MB以上が推奨)を設定し、本番環境ではapc.statをアクティブに設定
- 知識のあるユーザーは、sitepress.classや当社の他の非常に大きなファイルをAPCから除外することも試すことができ、これにより大幅な向上が得られる可能性あり
- pecl経由でインストール
- PHP >= 5.5の場合 => ZendOpcacheを使用(現在より高速で設定がはるかに簡単)
- pecl経由、またはPHPのコンパイル中にインストール
- PHP < 5.5の場合 => APCを使用し、十分なメモリ(大規模サイト(主にWCML)の場合は128MB以上が推奨)を設定し、本番環境ではapc.statをアクティブに設定
- W3TC自体での設定
- さまざまなキャッシュオプション(データベース、オブジェクトなど)に対して使用するOpCacheプラグインを選択(ここでハードドライブは絶対に使用しないこと)
- 出力のgZip設定に注意(強力なCPUがない限り、処理が遅くなる可能性あり)
- PHPの設定:
- 十分なRAMの設定
- PHPクエリキャッシュの有効化(W3TCとは直接関係ないものの、一部の箇所で非常に役立つ)
- MySQLの設定:
- 複雑なmemcachedセットアップがない場合 => MySQLクエリキャッシュを試す(特に新しい文字列翻訳において大幅な向上が得られるはず)
WPML 3.1.9のダウンロードと試用
これはベータ版であるため、手動でダウンロードする必要があります。WPML.orgアカウントにログインし、ダウンロードをクリックします。
一番下までスクロールし、CMS Beta Packageを取得します。これは他のZIPファイルを含むZIPファイルです。ローカルで解凍します。その後、ZIPファイルをWordPressにアップロードする(自動的に展開されます)か、自分で展開してpluginsフォルダーに保存します。
ご質問、ご提案、アイデアはありますか?コメントを残していただければ、返信いたします。

