【发布时间】:2010-02-02 14:24:43
【问题描述】:
在巨大的工作负载下运行几个小时后,我的 Windows 服务出现“内存不足”异常。 我使用以下性能计数器来检测内存泄漏:
所有堆中的字节数
- 私有字节
- 虚拟字节
前 2 个计数器有规律地上下波动……我看不出它们有什么问题。 但是第三个随着时间的推移增长非常缓慢,计数器也在上升和下降,但最后它随着时间的推移而增加。 这是什么意思?
我的 Win 服务是 .NET,它从 C++ DLL 调用一些函数,并使用其中包含一些非托管代码的第 3 方。
这是否表明托管代码/非托管代码中存在内存泄漏?或者只是这无济于事?
谢谢
【问题讨论】:
-
没有足够的信息来回答这个问题。您是否在 C# 代码中分配内存?可以贴代码吗?
-
C++ DLL 不是我的代码,它们都是第三方,我在托管代码中分配和释放大量资源,我无法将它们全部发布,它们太多了,其中一些与 GDI+、ADO.NET 和许多其他类型的对象有关。我也相信非托管代码经常这样做(由于它的功能)
标签: memory windows-services memory-leaks performancecounter