我刚开始尝试通过缓存信息减少一些数据库往返。我正在使用这种东西......
if (Cache["Testamonials"] != null)
{
allTestamonials = (Testamonials)Cache["Testamonials"];
}
else
{
allTestamonials = new Testamonials(_connection);
Cache.Insert("Testamonials", allTestamonials, null, DateTime.Now.AddDays(1), System.Web.Caching.Cache.NoSlidingExpiration);
}
显然,我看到网站性能急剧上升......我无法跟踪有关执行此类缓存的硬件影响的信息。例如,我可以缓存多少?我如何知道缓存是否变得过大或者是否存在任何类型的权衡?
道歉,如果这是一个新手问题:多年来一直是开发人员,但只是进入硬件方面。
答案 0 :(得分:1)
这种类型的问题最好由分析器(例如VS ultimate,ANTS profiler或one of these
中的分析器进行检查。这种类型的缓存称为mem-caching,并且有很多库可供使用。你可以自己滚动,但你必须处理种族状况和类似的事情
您还可以查看构建到IIS中的缓存,因为它的级别非常低,您可以从中获得一些良好的性能提升
答案 1 :(得分:1)
您可以监控一堆性能计数器进行缓存。您可以安全地知道asp.net使用的缓存非常智能并且将使用适当数量的系统资源,并且如果缓存导致asp.net工作进程不必要加载缓存中最不常用的项目将开始过期。有关性能计数器的详细信息,请参阅MSDN。