我为我的应用程序使用appfabric缓存。我的应用程序首次从数据库中读取值,而不是将对象(datatable)放入缓存中。
我在appfabric缓存之前使用了内存缓存。当我测试Appfabric vs MemoryCache的性能时,appfabric的结果是意外的。
内存缓存需要44秒才能从缓存中读取10,000条记录 Appfabric缓存需要15分钟才能读取10,000条记录。
我在拥有coreI5处理器,6 GB RAM的机器上创建了集群。
为什么要花更多时间?
注意 - 我的本地缓存已禁用。 Cachefactory只创建一次。它没有创建每个电话。
答案 0 :(得分:0)
MemoryCache是一个进程内缓存,因此从缓存中添加或获取项目几乎与从Hashtable获取(几乎为零时间)相似,因为不涉及通信或序列化/反序列化。
然而,Appfabric是一个进程外缓存,因此每个操作都涉及数据的序列化/反序列化以及从服务器添加/获取数据的通信成本。这就是为什么你在性能上面临这么大的差异。
要比较appfabric的性能,请将其与其他进程外的分布式缓存解决方案(如NCache)进行比较。 NCache也是.Net的快速,可扩展的分布式缓存解决方案。与appfabric相比,NCache具有丰富的缓存功能。您可以下载其企业版进行免费评估。请访问http://www.alachisoft.com/ncache/了解详情。