什么可以导致IISExpress专用字节在托管堆中没有任何重大更改的情况下继续增加?

Rag*_*esh 0 castle-windsor out-of-memory asp.net-mvc-3 glimpse

我有一个ASP.NET MVC 3应用程序,它使用Windsor注入存储库和NHibernate会话.今天,我第一次打了一个OutOfMemoryException.起初我以为可能是因为我没有发布Transient温莎创造的任何物品.作为一个快速的实验,我将所有这些变成了PerWebRequest生活方式,但它似乎并没有大大影响内存使用模式 - 它仍然在不断上升.

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

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

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

Rag*_*esh 8

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

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

  • 我可以确认我在生产中遇到了与Glimpse相同的内存泄漏问题. (2认同)