ホームページ > バックエンド開発 > PHPチュートリアル > eAccelerator は PHP コードメソッドの解析を高速化します

eAccelerator は PHP コードメソッドの解析を高速化します

WBOY
リリース: 2016-07-25 09:12:52
オリジナル
912 人が閲覧しました

eAccelerator は本当に優れたものです (その前身は track-mmcache です)。 これは、PHP (PHP5 をサポート) で動作し、共有メモリまたはディスク ファイルを介してデータを交換するキャッシュ システムです。 これは、PHP ソース コードを「エンコード」し (あまり適切ではありませんが「暗号化」と呼ばれます)、PHP 実行の中間コードをキャッシュして高速化するために広く使用されています。 eA のインストールと使用方法については、詳細な記事が多数あります。今回お勧めしたいのは、プログラムの設計とキャッシュを支援するために eA を使用することです。 これは非常に便利で安定したネイティブ キャッシュの実装ですが、現時点では、この部分の設計は共有メモリのみをサポートしているようです。そのため、Unix 風の OS でのみ使用できるのはあまり幸運ではありません。 1. eaccelerator_put($key, $value, $ttl=0) $key をキー名としてキャッシュに $value を保存します (オブジェクトタイプは php4 ではサポートされていますが、ソースコードから見ると zend2 ではサポートされていないようです)。 $ttl はこのキャッシュのライフサイクル (秒単位) です。このパラメータを省略するか、0 を指定します。 サーバが再起動されてクリアされるまで、時間制限がないことを示します。 2.eaccelerator_get($key) $key に従って、対応する eaccelerator_put() に格納されているデータをキャッシュから返します。キャッシュが期限切れであるか、キャッシュが存在しない場合、戻り値は NULL です。 3. eaccelerator_rm($key) $key に基づいてキャッシュを削除します 4. eaccelerator_gc() 期限切れのキーをすべて削除してクリアします 5. eaccelerator_lock($key) $key にロック操作を追加して、マルチプロセスおよびマルチスレッド操作中のデータ同期を確保します。 eaccelerator_unlock($key) を呼び出してこのロックを解放するか、プログラム要求によってこのロックが自動的に解放されるのを待つ必要があります。 例えば: ? & Lt;? Php

Eaccelerator_lock ("カウント");
Eaccelerator_get ("カウント"); $keyに基づいてロックを解放します 7. eaccelerator_cache_output($key, $eval_code, $ttl=0) $eval_code コードの出力を $ttl 秒間キャッシュします ($ttl パラメーターは eacclerator_put と同じです)。 例えば:
  1. コードをコピー
8. eval_code、$ttl=0) cache_output と同様に、$eval_code コードの実行結果を $ttl 秒間キャッシュします ($ttl パラメータは eacclerator_put と同じです)。 例えば:

    コードをコピー
9. eaccelerator_cache_page($key, $ttl) =0) 現在のページ全体を $ttl 秒間キャッシュします。 例えば:
eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30);

echo time()
?> ;
  1. コードをコピー
10. eaccelerator_cache_page() によって実行されるキャッシュを削除します。パラメータは $key です。 たとえば、cli モードでは動作しない可能性があることに注意してください。

class test_cache {
    var $pro = 'hello';
  1. function test_cache() {
  2. echo "オブジェクトが作成されました!
    n" }
  3. function func() {
  4. echo '、世界!'
  5. }
  6. function now($t) {
  7. echo date('Y-m-d H:i:s', $t)
}
} $tt = eaccelerator_get("test_tt") ; if (!$tt) {

$tt = new test_cache;

eaccelerator_put("test_tt", $tt);
echo "キャッシュされていません!
n"
else {
    echo "キャッシュされました"; ;br>n";
  1. }
  2. echo $tt->pro;
  3. $tt->func();
  4. $tt->now(time() + 86400);
  5. ?>
  6. コピーコード
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート