我正在使用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;
}
这非常快!
我很好奇它是如何将对象保存到内存中的。
是保存指针值,还是将对象散列,然后将其保存到内存中,当我请求它时,将其反序列化?
答案 0 :(得分:0)
数据,是一种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 ....
}