gpt4 book ai didi

c# - Web服务内存泄漏的原因

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:27 24 4
gpt4 key购买 nike

我们有一个 Web 服务使用越来越多的私有(private)字节,直到该应用程序停止响应。托管堆(主要是 Gen2)将显示大约 200-250 MB,而私有(private)字节显示超过 1GB。托管堆外内存泄漏的可能原因是什么?

我已经检查了以下内容:

  1. 多产的动态程序集(Xml 序列化、正则表达式等)
  2. session 状态(关闭)
  3. System.Policy.Evidence 内存泄漏(已安装 SP1)
  4. 线程死锁(不使用 Join,只使用锁)
  5. SQLOLEDB的使用(使用SqlClient)

我可以检查哪些其他来源?

最佳答案

确保您的应用在 Release模式下符合要求。如果您在 Debug模式下编译并部署它,只需实例化一个定义了事件的类(甚至不需要引发事件),将导致一小块内存泄漏。在足够长的时间内实例化足够多的这些对象将导致使用所有内存。我见过 Web 应用程序会在几个小时内用完所有内存,这仅仅是因为使用了调试版本。立即编译为发布版本并永久解决问题。

关于c# - Web服务内存泄漏的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/285392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com