什么会导致 IISExpress 私有字节不断增加,而托管堆中没有任何重大变化?

发布于 2024-12-10 20:28:20 字数 522 浏览 0 评论 0原文

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

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

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

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

I have an ASP.NET MVC 3 app that uses Windsor for injecting repositories and NHibernate sessions. Today, for the first time, I hit an OutOfMemoryException. At first I thought it might be because I wasn't releasing any of the Transient objects that Windsor was creating. As a quick experiment, I turned all of those into PerWebRequest lifestyle, but it doesn't seem to have affected the memory usage pattern in a big way -- it still keeps going up.

  • I'm not doing any caching
  • I'm not using any unmanaged resources
  • I am doing JSON serialization of several anonymous objects
  • The action that I'm using for stress testing just returns a tiny JSON object (32 bytes), so no large objects are involved anywhere

What could cause IISExpress private bytes to keep going up when my managed heap size is stable (verified with Perfmon)?

What would be the right tool to debug this? I'm assuming CLR profilers may not be helpful because Perfmon doesn't show any leak in the managed heap.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萤火眠眠 2024-12-17 20:28:20

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

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

Memory usage seems to be stable after I disabled Glimpse.

I don't know what it could possibly be doing to leak unmanaged memory, but just setting on="false" in the Glimpse configuration section in web.config instantly makes the memory usage stable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文