シンプルなデータ キャッシュ テクノロジ
私は最近、プログラムのパフォーマンスの最適化作業をしばらく行ってきましたが、興味深いアイデアがあるので、皆さんと共有したいと思います。
キャッシュは「時間のためのスペース」戦略の典型的な応用モードであり、システムのパフォーマンスを向上させる重要な方法です。キャッシュを使用すると、アクセス量が多い場合にデータベース操作の回数が大幅に削減され、システムの負荷が大幅に軽減され、システムのパフォーマンスが向上します。ページ キャッシュと比較して、結果セットはフォーマット情報を含まない一種の「生データ」であり、データ量が比較的少なく、再フォーマットできるため、非常に柔軟です。 PHP は「コンパイルと実行を同時に行う」スクリプト言語であるため、結果セットのキャッシュをある程度まで使用する非常に便利な方法、つまり、対応するデータ定義コード セグメントを動的に含めることによってキャッシュを使用する方法も提供します。 「RamDisk」上にキャッシュを構築すればさらに効率が上がるはずです。以下は参考用の小さなサンプルコードです。
// キャッシュを使用してデータをロードします
function load_data($id,$cache_lifetime) {
// 戻りデータ
$data = array();
// キャッシュ ファイル名を作成します
$cache_filename = 'cache_'。 $id.'.php';
// キャッシュ ファイルの最終変更時刻を確認します
$cache_filetime = filemtime($cache_filename);
if (time() - $cache_filetime <= $cache_lifetime) {
//** キャッシュ期限切れではありません
include($cache_filename);
} else {
//** キャッシュの期限切れです
// データベースからデータをロードします
// ...
while ($dbo->nextRecord()) {
// $data[] = ...
}
// データを php ファイルとしてフォーマットします
$data_cache = "while (list($key, $val) = each($ data); ) {
$data_cache .= "$data['$key']=array('";
$data_cache .= "'NAME'=>"".qoute($val['NAME']). "" ,"
$data_cache .= "'VALUE'=>"".qoute($val['VALUE'])."""
$data_cache .= ");rn";
}
$data_cache = "? >rn";
// データをキャッシュ ファイルに保存します
if ($fd = fopen($cache_filename,'w+')) {
fputs($fd,$data_cache);
fclose($fd) ;
}
}
return $data;
}
?>
該当する状況:
1. データは、主に読み取り操作に対して安定しています。
2. ファイル操作はデータベース操作よりも高速です。
3. 複雑なデータアクセス、大規模なデータアクセス、集中的なデータアクセス、システムデータベースの負荷が非常に高くなります。
4.Web/DB分離構造またはマルチWeb単一DB構造。
未確認の質問:
1. 同時アクセス中にファイルの読み取りと書き込みを行うと、ロックの問題が発生しますか。
2. 関係するデータファイルが多すぎる場合のパフォーマンスはどうですか?
拡張アイデア:
1. JavaScript データ定義コードを生成し、クライアントで呼び出します。
2. まだ考えていない...
一緒に話し合えればと思っています。
キャッシュ
巨大な PHP アプリケーションのパフォーマンスを向上させたい場合は、キャッシュを使用することも良い方法です。 Zend Cache、APC、Afterburner Cache など、多くのキャッシュ ソリューションが利用可能です。
これらの製品はすべて「キャッシュモジュール」に属します。.php ファイルに対するリクエストが最初に発生すると、Web サーバーのメモリに PHP 中間コードが保存され、その後のリクエストには「コンパイルされた」バージョンで応答します。このアプローチでは、ディスク アクセスが最小限に抑えられ (コードが読み取られて解析されている)、コードがメモリ内で直接実行されるため、サーバーのリクエストに対する応答が大幅に速くなり、アプリケーションのパフォーマンスが大幅に向上します。もちろん、キャッシュ モジュールは PHP ソース ファイルの変更も監視し、必要に応じてページを再キャッシュします。これにより、古い PHP コードによって生成されたページをユーザーが受信するのを防ぎます。キャッシュ モジュールはサーバーの負荷を大幅に軽減し、PHP アプリケーションの応答効率を向上させることができるため、負荷の高い Web サイトに非常に適しています。
これらのキャッシュ製品の選び方
Zend Cache は Zend Technologies の商用ソフトウェアであり、Zend Technologies は前述の PHP エンジンと無料の Zend Optimizer を提供する会社です。 Zend Cache は確かに価値があります。大規模な PHP ページの場合、最初の実行後に速度が向上し、サーバーで使用できるリソースが増加するのを感じることができます。残念ながら、この製品は無料ではありませんが、場合によっては依然として大きな価値がある可能性があります。
Afterburner Cache は、Bware Technologies の無料のキャッシュ モジュールです。この製品は現在ベータ版です。 Afterburner キャッシュは Zend Cache に似ていますが、(まだ) Zend Cache ほどパフォーマンスは向上せず、Zend Optimizer では動作しません。
APC は Alternative PHP Cache の略称で、Community Connect のもう 1 つの無料のキャッシュ モジュールです。すでに正式に使用できるほど安定した製品となっており、リクエストへの対応速度も大幅に向上しているようだ。
現在のページ 1/3 123次のページ
上記はエアクッションガイドレール上のスライダの加速度を測定する内容も含め、1/3ページでエアクッションガイドレール上のスライダの加速度を測定するためのPHP速度を上げる方法を紹介しております。 PHP チュートリアルに興味のある友人に役立ちます。