在mvc mini profiler中限制HttpRuntime缓存存储

时间:2012-11-04 18:03:56

标签: c# mvc-mini-profiler mvcminiprofiler

  1. 我相信mvc mini profiler会将所有响应时间存储在HttpRuntime缓存中。
    如果我错了,请告诉我,但如果是这样的话,那么这个缓存的最大限制是多少?在缓存已满之前,它可以分析多少个操作?我们使用迷你探查器来分析测试套件的操作,测试套件会随着时间的推移而增长,所以我很担心这个问题。我应该担心吗?

  2. 相关说明。在对所有测试进行了分析后,我只需在mini Profiler的Save类中调用SqlServerStorage方法。并且所有响应时间都保存到SQL Server数据库中。有没有什么方法可以更频繁地调用Save方法而无需一次又一次地启动和停止探查器?我们只是在测试套件的开头启动它,并在所有测试都被分析后结束它。我们将MiniProfilers表的一个条目视为一个分析会话。现在,我无法多次调用“保存”方法,因为每次调用它都需要一个新的MiniProfilerId

  3. 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我不是直接熟悉迷你探查器,但我对缓存有很多经验。 HttpRuntime.Cache属性提供对System.Web.Caching.Cache类的引用。这是对象缓存的实现。通常使用此缓存是静态的,因此只有一个实例。您可以使用Web.Config文件配置此缓存的行为。有关Windows缓存的一些注意事项,使用它时永远不会出现内存不足错误。缓存具有一定百分比的内存值,告诉它应该获得多长。一旦接近最高内存使用百分比,它将开始从最早触摸的对象开始剔除缓存中的对象。所以对你的第一个问题的简短回答是否定的,不要担心内存限制,托管语言的一个主要卖点就是你永远不必担心内存消耗,让框架处理它。

对于#2,我不担心。缓存可能会丢弃响应对象本身,但我冒昧地猜测它已经包含在profilier的结果聚合中,所以你真的不需要原始的请求对象本身,除非你想深入检查它。

长话短说,除非你遇到真正的问题,否则我不会再担心了。让缓存做它的工作并相信构建它的工程师知道他们在做什么,除非你有证据。