Windows Azure Caching Documentは言う
可能であれば、同じ DataCacheFactory オブジェクトを保存して再利用し、メモリを節約してパフォーマンスを最適化してください。」
これがどれほど高価であるかの指標や定量化を見た人はいますか?
「MaxConnectionsToServer 設定... は、キャッシュ クラスターに対して開かれる DataCacheFactory ごとのチャネル数を決定します。」
したがって、MaxConnectionsToServer = 1 であり、DataCacheFactory がアプリ内のシングルトンである場合、Web サーバーへのすべてのリクエストを効果的に同期したことになります。
ただし、DataCacheFactory をシングルトンにする (つまり、Application_OnStart に配置する) べきであるという指摘が多数あります。
これは非常に重要であり、Microsoft のドキュメントに記載されていないとは信じられません。DataCacheFactory は、AppFabric、Azure 共有キャッシュ、および Azure キャッシュで同じように扱われますか? Microsoft がシングルトン ファクトリ オブジェクトを必要とする方法でキャッシングを設計したとは信じがたいです。これは、SqlConnection を使用するすべての人に、アプリケーションにシングルトン SqlConnectionFactory オブジェクトを持たせるように要求するようなものです。
したがって、比較的平均的な Web アプリ (たとえば、1 時間あたり 1,000 件のリクエスト、キャッシュ内の約 100 個のオブジェクト、平均的なリクエストは 5 個のキャッシュ オブジェクトにアクセスする) を考えると、次のようになります。
- デフォルト (および推奨) では、一度にいくつの Factory オブジェクトが存在する必要がありますか?
- DataCacheFactory 参照を作成するのにどのくらい時間がかかりますか?
- DataCache 参照の作成にはどのくらいの時間がかかりますか?
- アプリごとに 1 つの DataCacheFactory オブジェクトのみ、要求ごとに 1 つの DataCache 参照のみにする必要がありますか?
編集(進行中の回答):
(1/2)。Azure 接続プールに Factory オブジェクトを処理させる
(3)。まだテスト中...
(4)。DataCache 参照を再利用する必要があるかどうかをまだ判断しようとしています