最終的には数か月後に検討する必要があるいくつかのシナリオがあります。それまでの間、議論について熟考できるように、そこに質問を投げかけます。
アプリケーション スタックに Zend Framework を使用しています。サーバーキャッシングにAPCを使用しています(アプリケーションが分散されていても、memcacheが私に利益をもたらすとは思わないため、memcacheではなく)。
私のアプリケーションは JavaScript なしで動作するように構築されており、JavaScript をサポートするために、ページを分割して JavaScript 対応バージョンをレンダリングします。
単純なページを分析すると、おそらくその 80% がコア機能であり、すべてのユーザーに対してキャッシュできます。次に、その 20% がそのユーザー向けにカスタマイズされます。たとえば、表示したい場合があります
- 最近閲覧した 5 件のアイテム
- お気に入りのアイテム
これら 2 つの「ウィジェット」は、各ユーザーに固有のものです。これらのコンポーネントに ESI を使用することを検討していましたが、Zend Framework アプリケーションで最も消費量が多いのはブートストラップとディスパッチ プロセスであることに気付きました。したがって、私のアプリケーションがキャッシュなしで現在 80 ミリ秒かかるとします。相対時間の 90% がブートストラップとプラグイン フックで費やされているように、ESI を使用してこれら 2 つの「ウィジェット」をロードすると、各ページに効果的に負荷がかかることになります。キャッシュされたページごとに別の 80 ミリ秒のリクエストを開始するためです。
その場合、カスタマイズされたウィジェット/スニペットを JavaScript 経由でロードすることをお勧めします。これは、最初のページがロードされた後に取得できます。これの明らかな利点は、キャッシュされるリクエストは常に 1 つだけであり、最初のページ (キャッシュされる) が提供された後、カスタマイズされたものはすべて 1 つのリクエストでプルされることです。
最大のパフォーマンスを探している場合、これはより良い解決策のように思えますか?