关于缓存的硬件影响的问题

时间:2011-05-05 11:45:02

标签: c# caching

我刚开始尝试通过缓存信息减少一些数据库往返。我正在使用这种东西......

        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);
        }            

显然,我看到网站性能急剧上升......我无法跟踪有关执行此类缓存的硬件影响的信息。例如,我可以缓存多少?我如何知道缓存是否变得过大或者是否存在任何类型的权衡?

道歉,如果这是一个新手问题:多年来一直是开发人员,但只是进入硬件方面。

2 个答案:

答案 0 :(得分:1)

这种类型的问题最好由分析器(例如VS ultimate,ANTS profilerone of these

中的分析器进行检查。

这种类型的缓存称为mem-caching,并且有很多库可供使用。你可以自己滚动,但你必须处理种族状况和类似的事情

您还可以查看构建到IIS中的缓存,因为它的级别非常低,您可以从中获得一些良好的性能提升

答案 1 :(得分:1)

您可以监控一堆性能计数器进行缓存。您可以安全地知道asp.net使用的缓存非常智能并且将使用适当数量的系统资源,并且如果缓存导致asp.net工作进程不必要加载缓存中最不常用的项目将开始过期。有关性能计数器的详细信息,请参阅MSDN