2

HttpContext.Current.Cacheオブジェクトをメモリに保存するために使用しています。

私が持っているコードは次のようになります:

public void Add(string key, object data, TimeSpan slidingExpirationTime)
{
    HttpContext.Current.Cache.Insert(key, data, null, System.Web.Caching.Cache.NoAbsoluteExpiration, slidingExpirationTime);
}

public T Get<T>(string key)
{
    T itemStored = (T)HttpContext.Current.Cache.Get(key);
    if (itemStored == null)
        itemStored = default(T);

    return itemStored;
}

これは非常に高速に機能します。

オブジェクトをメモリに保存する方法に興味があります。

ポインター値を保存していますか、それともオブジェクトをハッシュしてからメモリに保存しており、要求すると逆シリアル化されますか?

4

1 に答える 1

1

データは、キャッシュ キーを挿入する内部関数の一種でobjectあり、単純に参照を保持していることがわかります。object

internal CacheEntry(string key, object value, CacheDependency dependency, CacheItemRemovedCallback onRemovedHandler, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, bool isPublic) : base(key, isPublic)
{
    if (value == null)
    {
        throw new ArgumentNullException("value");
    }
    .... code ....
    this._value = value;
    .... code ....
}
于 2013-03-07T13:56:02.810 に答える