• 締切済み

PHPでファイルそのものをキャッシュは可能?

PHPで書いた独自のブログサイトをやっています。 1ページ表示するのにincludeするファイルが数十にもなることがあり、 いちいちファイルを読み込むのは処理が重い気がしています。 2回目以降は、メモリ上にファイルをキャッシュし、そこから使用するような仕組みは何かありますでしょうか? お願いします。

みんなの回答

回答No.2

あくまでも僕のやり方としての回答で、no1の回答者さんとほぼ同意です。 SQLの集計等で処理コストが高いものを、httpの出力寸前にそのままファイルへ保存しキャッシュしています。SQLの最終更新の時刻を保存ファイルのfilemtimeと比較して、キャッシュ出力か再レンダリングかを判定します。 ただこの手段は、SQLの集計時間、ページのレンダリング、ネットワークコストなどを計測し、キャッシュが有効かどうかを判定してから利用を考えています。当然、ページレンダリング時の処理時間も細かく計ったりしながらです。 マシンパワーの問題もありますが、個人的にはページのレンダリングはあまり時間を食わない印象があります。クライアント側でストレスを感じる場合レンダリングより、SQLのクエリーが非効率だったり、ネットワークコストの問題だったり。 それぞれを振り分け、ストレスの元を探ると、「え!ここが。」的な新しい発見する事も多いですよ。 ^-^

回答No.1

要件をそのまま満たしそうな物に eAccelerator という物がありますが、 こういう類の物は、ディスクI/Oが相当なボトルネックになっていないと効果がありません。 キャッシュ処理が入ることで逆に遅くなる場合もあります。 「気がする」ではなく、先にどこが重いのか、処理時間を測って見たほうがいいと思います。

参考URL:
http://php.y-110.net/wiki/index.php?PHP%A1%A7eAccelerator%20%A4%C7%20PHP%20%B9%E2%C2%AE%B2%BD

関連するQ&A