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

Kum*_*hav 5 c# mvc-mini-profiler mvcminiprofiler

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

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

有什么建议?

par*_*tch 1

我并不直接熟悉迷你分析器,但我确实对缓存有相当多的经验。HttpRuntime.Cache 属性提供对 System.Web.Caching.Cache 类的引用。这是对象缓存的一个实现。一般情况下,该缓存是静态的,因此只有一个实例。您可以使用Web.Config文件配置此缓存的行为。关于 Windows 缓存需要记住的一些事情,使用它永远不会出现内存不足错误。缓存有一个内存百分比值,告诉它应该达到多满。一旦接近最高内存使用百分比,它将开始从最旧的触摸对象开始从缓存中剔除对象。因此,您的第一个问题的简短答案是否定的,不要担心内存限制,托管语言的主要卖点之一是您永远不必担心内存消耗,让框架来处理它。

至于#2,我不担心。缓存可能会丢弃响应对象本身,但我大胆猜测它已经包含在分析器的结果聚合中,因此您实际上不应该需要原始请求对象本身,除非您想深入检查它。

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