ホームページ >php教程 >php手册 >eAccelerator を使用して PHP コードを高速化する方法

eAccelerator を使用して PHP コードを高速化する方法

WBOY
WBOYオリジナル
2016-06-13 12:31:221062ブラウズ

eAccelerator は本当に優れたものです (その前身は track-mmcache です)。

簡単に言うと、PHP (PHP5 をサポート) で動作し、共有メモリまたはディスク ファイルを介してデータを交換するキャッシュ システムです。

PHP ソース コードを「エンコード」し (あまり適切ではないが「暗号化」と呼ばれます)、PHP によって実行される中間コードをキャッシュして高速化するために広く使用されています。 eA のインストールと使用方法については、詳細な記事が多数あります。今回お勧めしたいのは、次のような API のセットを提供する、eA の使用です。非常に便利で安定しています。現時点では、この部分の設計は共有メモリのみをサポートしているようです。そのため、Windows のような 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. ($key)
マルチプロセスおよびマルチスレッド操作中のデータ同期を確実にするために、ロック操作を $key に追加します。 eaccelerator_unlock($key) を呼び出してロックを解放するか、リクエストの終了時にプログラムが自動的にロックを解放するのを待つ必要があります。
例:
eaccelerator_lock("count")
eaccelerator_put("count",eaccelerator_get("count") 1)); >
6. eaccelerator_unlock($key)
$key に基づいてロックを解除します

7. eaccelerator_cache_output($key, $eval_code, $ttl=0)
$ の出力をキャッシュしますeval_code コード $ ttl 秒、($ttl パラメーターは eaccelerator_put と同じです)
例:


8. eaccelerator_cache_result($key, $eval_code, $ttl=0)
$eval_code コードの実行結果を $ttl 秒間キャッシュします ($ttl パラメーターは eaccelerator_put と同じです)。例:

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

10. eaccelerator_rm_page($key)
eaccelerator_cache_page() によって実行されるキャッシュを削除します。パラメータも $key

です。
(その能力を確認するための簡単な例。cli モードでは動作しない可能性があることに注意してください!)


/n"; } function func() { echo '、世界!' } function now($t) { echo date('Y-m-d H:i:s', $t ); }}$tt = eaccelerator_get("test_tt");if (!$tt){ $tt = new test_cache; echo "キャッシュされていません!
/n"; }else { echo "cached
/n";}echo $tt->pro; $tt->func();$tt->now(time() 86400);?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。