6

XCache Web サイトを含む Web 中のドキュメントを検索しました。

PHP オペコード キャッシングと XCache は初めてです。XCache の仕組みについて説明をお願いします。毎回再コンパイルする必要がないように、コンパイルされたphpコードを保存することを知っています。しかし、php コードが更新されてキャッシュが古くなったことを、XCache はどのようにして知るのでしょうか?

キャッシュをクリアする必要があるかどうかはどうすればわかりますか?

XCacheはサーバー上のすべてのPHPコードをコンパイルしてキャッシュしますか? もしそうなら、これは設定できますか?

下駄とは?OOM? XCache 管理ページ インターフェイスで、これらの両方が多数表示されます。

コード カバレッジ ビューアで...パーセントとはどういう意味ですか? これはキャッシュされたコードの割合ですか? ヒットとは、キャッシュから読み取られたコンパイル済みコードの行数を意味しますか? 行数はコードの総行数を意味しますか? ToDo 列は何のためにあるのですか? 一部の行が赤く強調表示されているのはなぜですか?

PHP 5.3.2、XCache 1.3.0、および Ubuntu 10.04 を使用しています。

4

1 に答える 1

7

Xcache :

は、PHP スクリプトのコンパイル済み状態を shm (RAM) にキャッシュすることで PHP スクリプトのコンパイル時間をなくすことでパフォーマンスを最適化し、コンパイル済みバージョンを RAM から直接使用します。

PHP 5.5.3 と Xcache 3.1.0を使用した観察に基づいて、次のように推測できます。

キャッシャー

このモジュールはOpcodeVariableの 2 種類のキャッシングを扱います。

Opcodeキャッシングは、単純なドロップインになるように設計されています。キャッシュする方法をカスタマイズすることはできません。

  • xcache.count設定は、キャッシュ スレッドの数を参照し、利用したいプロセッサ コアの数に相関します —マルチスレッドが最速であるべきという考え方ですが、保証はありませんので、自分で実験してください
  • ガイドラインとして、有効なカウント値は 1、2、4、8 のように 2^n になります — 0 はキャッシャーを無効にし、他の値は最も近い有効な値に丸められます
  • xcache.size設定は、すべてのキャッシュ スレッドの総メモリを参照します。したがって、各スレッドはおおよそsize/countの量のメモリを取得します
  • OOM別名Out of Memoryは、キャッシュ スレッドが最大サイズに達するイベントを指します。

変数のキャッシュでは、アプリ コードで単純な get/set API を使用する必要があります。xcache.var_sizexcache.var_count (Opcode 設定と同様) を使用して有効にした後、スクリプトでxcache_set($var1)andを使用xcache_get($var1)します。

無効化

xcache.stat設定は、ファイルがキャッシュされてから変更されたかどうかを確認するかどうかを制御します。

  • オンに設定すると、ファイルがチェックされ、再キャッシュされます
  • Offに設定すると、チェックは有効期限が切れるまで最初にキャッシュされたバージョンを保持します。これにより、ディスク i/o が制限されるため、パフォーマンスが向上します。

開発環境では、コードを継続的に更新およびチェックできるように、オンにしておくことをお勧めします。そうしないと、ファイルの更新を確認するためにキャッシュをフラッシュする必要があります。

フラッシング

特定のキャッシュをフラッシュできる Web 管理インターフェイスがあります。Web 管理者は php API: を使用しますxcache_clear_cache(…)

キャッシュは RAM ベースであるため、サーバーが再起動するたびにキャッシュをフラッシュする必要があります。

有効期限

キャッシュされたアイテムは、キャッシュされたアイテムが存続する秒数をそれぞれ制御するxcache.ttlおよびに従って期限切れになります (0 は無期限であり、デフォルトです)。xcache.var_ttl

取材者

カバレッジ モジュール、別名コード カバレッジは、少し不思議です。FeatureListによると、一時的な管理/テストの状況で有効にすることを目的とした診断ツールのようです。

  • Coverager + 実際のテストケース フレームワーク、これには以下が含まれます: [TOSHARE]
    • 実際のテストケース フレームワーク、実際のブラウザを備えた制御スクリプト。テストケースを書く必要があります。
    • 組み込みの Coverager + Web からのそのビューアーを使用して、テストしたスクリプトの量を確認します。
  • testcase+Coverager は、すべての実際の php Web アプリケーションが正しく実行されていることを確認するのに役立ちます。
    • XCache を有効にした後
    • php4をphp5にアップグレードした後
    • php4/5 を php6 にアップグレードした後
于 2013-11-20T03:54:22.903 に答える