我相信 mvc mini profiler 将所有响应时间存储在 HttpRuntime 缓存中。
请让我知道如果我错了但如果是这样那么这个缓存的最大限制是多少?在缓存满之前它可以分析多少个操作?我们正在使用迷你分析器来分析测试套件的操作,并且测试套件会随着时间的推移而增长,所以我很担心这件事。我应该担心吗?相关说明。分析完所有测试后,我只需调用迷你分析器的
SqlServerStorage
类中的Save
方法。并且所有响应时间都保存到 SQL 服务器数据库中。有什么方法可以更频繁地调用Save
方法,而无需一次又一次地启动和停止探查器?我们只是在测试套件开始时启动它,并在分析完所有测试后结束它。我们将MiniProfilers
表的一个条目视为一个分析 session 。现在我无法多次调用“保存”方法,因为每次调用它时都需要一个新的MiniProfilerId
。
有什么建议吗?
最佳答案
我并不直接熟悉迷你分析器,但我对缓存有相当多的经验。 HttpRuntime.Cache 属性提供对 System.Web.Caching.Cache 类的引用。这是对象缓存的实现。一般使用这个缓存是静态的,所以只有一个实例。您可以使用 Web.Config 配置此缓存的行为文件。关于 Windows 缓存的一些事情要记住,你永远不会在使用它时遇到内存不足的错误。缓存有一个内存百分比值,告诉它它应该达到多满。一旦它接近最高内存使用百分比,它将开始从缓存中剔除对象,从最早接触的对象开始。所以对你的第一个问题的简短回答是不,不要担心内存限制,托管语言的主要卖点之一是你永远不必担心内存消耗,让框架来处理它。
至于#2,我不会担心。缓存可能会丢弃响应对象本身,但我敢猜测它已经包含在分析器的结果聚合中,所以你真的不需要原始请求对象本身,除非你想深入检查它。
长话短说,除非您遇到真正的问题,否则我不会再担心这个了。让缓存完成它的工作,并相信构建它的工程师知道他们在做什么,除非您有其他证据。
关于c# - mvc mini profiler 中 HttpRuntime 缓存存储的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221326/