0

我有一个 ASP.NET MVC 3 应用程序,它使用 Windsor 来注入存储库和 NHibernate 会话。今天,我第一次击中OutOfMemoryException. 起初我认为这可能是因为我没有释放Transient温莎创建的任何对象。作为一个快速的实验,我把所有这些都变成了PerWebRequest生活方式,但它似乎并没有在很大程度上影响内存使用模式——它仍然在不断上升。

  • 我没有做任何缓存
  • 我没有使用任何非托管资源
  • 正在对几个匿名对象进行 JSON 序列化
  • 我用于压力测试的操作只返回一个微小的 JSON 对象(32 字节),因此任何地方都不会涉及大对象

当我的托管堆大小稳定(使用 Perfmon 验证)时,什么可能导致 IISExpress 私有字节继续增加?

什么是调试这个的正确工具?我假设 CLR 分析器可能没有帮助,因为 Perfmon 在托管堆中没有显示任何泄漏。

4

1 回答 1

8

禁用Glimpse后,内存使用情况似乎很稳定。

我不知道泄漏非托管内存可能会做什么,但只需on="false"在 web.config 的 Glimpse 配置部分进行设置,即可立即使内存使用稳定。

于 2011-10-18T19:34:17.710 回答