8

単純な静的フィールドの使用に対して HttpRuntime キャッシュを使用することの主な長所短所は何ですか?

ASP.NET アプリケーション全体の範囲にデータを格納する必要があります。

HttpRuntime.Cache["MyData"] = someHashtable;

対。

private static System.Collections.Hashtable _myData;
public static System.Collections.Hashtable MyData
{
    get
    {
        if (_myData == null)
        {
            _myData = new System.Collections.Hashtable();
            // TODO: Load data
        }
        return _myData;
    }
}
4

3 に答える 3

5

明示的に設定されていない限り、オブジェクトのHttpRuntime.Cache有効期限は不明です (つまり、オブジェクトはいつでも有効期限が切れる可能性があります)。一方HashTable、アプリケーション プール内のオブジェクトは有効です (エントリを手動で削除しない限り)。では、(オプションの) キャッシュ アイテムの優先度や有効期限など、その他のHttpRuntime.Cacheさまざまな特性を設定することもできます。

于 2011-08-03T07:21:13.473 に答える
0

キャッシュを使用すると、有効期限に終了日を簡単に設定できます。キャッシュ オブジェクトはコンテンツを自動的に期限切れにします。

また、キャッシュに優先順位を付けて、重要度の低いアイテムに低い優先順位を付けて、サーバーの負荷が高くなると、そのアイテムが最初に削除されるようにすることもできます

ただし、単体テスト中は httpcontext を使用できないため、単体テストでは常に余分な作業を行う必要があります。

于 2011-08-03T07:20:43.590 に答える
0

HttpRuntime.Cache では有効期限コールバックを指定できますが、静的辞書を使用すると、クエリがキャッシュ アイテムの有効期限ループを実行するまで待機する必要があります。

于 2012-08-10T21:08:28.570 に答える