我有一个ASP.NET MVC 3应用程序,该应用程序使用Windsor注入存储库和NHIBERNATE会议。今天,我第一次打了 OutOfMemoryException. 。起初我认为可能是因为我没有发布任何 Transient 温莎正在创建的对象。作为一个快速实验,我把所有这些都变成了 PerWebRequest 生活方式,但似乎并没有大大影响记忆使用模式 - 它仍然在不断上升。

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

当我的托管堆尺寸稳定时(用perfmon验证)时,什么可能导致iisexpress私有字节继续上升?

调试此问题的正确工具是什么?我假设CLR剖面人员可能没有帮助,因为PerfMon不会显示托管堆的任何泄漏。

有帮助吗?

解决方案

我禁用后,内存使用率似乎是稳定的 一瞥.

我不知道泄漏不受管理的内存可能会做什么,而只是设置 on="false" 在Web.config中的“瞥见配置”部分中,立即使内存使用量稳定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top