缓存大对象 - LocalCache性能

时间:2014-10-17 15:18:56

标签: wcf caching azure azure-caching azure-in-role-cache

我有一些需要从缓存中存储和提取的大对象。这些物体的大小约为1-2 mb。

在启用localCache的情况下运行时,检索时间不会超过几毫秒,但如果没有,则一直需要大约3秒钟。

我正在使用Azure角色内缓存(共置)。

如果没有启用localCache,任何人都可以解释为什么会这么慢?

1 个答案:

答案 0 :(得分:1)

LocalCache是​​进程的本地,即在应用程序的进程内存中。如果启用了LocalCache,则从缓存中获取的对象也将存储在LocalCache中。该对象的每个下一个请求都将从该LocalCache提供(无需从进程外缓存中获取)。但是,第一次检索对象需要时间。

根据MSDN

  

启用本地缓存后,缓存客户端会存储对该引用的引用   对象本地。这使对象在内存中保持活动状态   客户申请。当应用程序请求对象时,   缓存客户端首先检查对象是否驻留在本地   缓存。如果是,则立即返回对该对象的引用   没有联系服务器。如果它不存在,则对象是   从服务器检索。缓存客户端然后反序列化   对象并存储对此新检索对象的引用   本地缓存。客户端应用程序使用同一个对象。

当禁用本地缓存时,每个检索请求都被定向到out-proc缓存,导致每次从外部进程的内存中获取对象。

-Sameer