3

バックストーリー

私は、大規模な自家製の PHP ライブラリをすべて使用するさまざまな (Web) アプリケーションを維持しています。これらのアプリケーションの一部は、従業員が使用する従来のデスクトップ アプリケーションですが、その他 (この質問により関連性が高い) は、人気が高まり続けるにつれてパフォーマンスがより重要な問題になっている PHP Web サイトです。

現在の PHP キャッシング方法

ウェブサイトの 1 つ (お店です。thinkgeek.comと考えてください) を高速化するために、memcached を使用して、常に動的に構築する必要のないウェブサイトの特定のセグメント (特定のカテゴリの製品リストなど) をキャッシュします。 )。

また、OPCode キャッシュとして APC のほぼ工場出荷時のデフォルト インストールを使用します。

これらの方法はどちらもウェブサイトのパフォーマンスを大幅に改善しますが、私は最適化の道をさらに進んでいきたいと考えています.

PHP の関数の揮発性

私自身データベースのバックグラウンドを持っているので、たとえば PostgreSQL が関数のボラティリティを使用して、信頼性が高く正確な結果を維持しながらパフォーマンスを大幅に向上させる方法が非常に気に入っています。

私の質問は、開発者が特定の関数 (またはクラス メソッド) としてマークできるようにする PHP の拡張機能はありますIMMUTABLEか? (同じ入力引数が与えられた場合、その関数の結果は常に同じであることを意味します)。このキャッシュ拡張機能は、その関数の結果をキャッシュすることができ、大きなコード ライブラリを使用する場合にパフォーマンスが大幅に向上するはずです。

SomeClass::getWebsiteFooter();簡単な例としては、Web サイトが変更されていない限り (変更されている場合はキャッシュがフラッシュされます)、常に同じ HTML コードを返すなどのメソッドがあります。

このようなものは存在しますか?私は市場で遠く離れたものを見つけることができませんでした. 私の状況に役立つ可能性のあるパフォーマンス改善の他の方法はありますか?

4

1 に答える 1

1

PHP アプリケーションを Web アプリケーションとして見て、いくつかのレベルのキャッシュを実装したと思います。

IMMUTABLE メソッド - 良いアプローチだとは思いません。データベース レベル、アプリケーション レベル (memcached) でのキャッシングの使用は良いスタートです。

次に、 SquidVarnishのようなビュー レベルのSmarty キャッシュとプロキシのキャッシュを提案します

于 2012-11-19T13:05:56.083 に答える