【问题标题】:.NET - high memory usage by clr.dll and native heaps.NET - clr.dll 和本机堆的高内存使用率
【发布时间】:2013-09-16 08:28:45
【问题描述】:

我一直在使用 DebugDiag 对一个显示内存持续增加的 .NET 应用程序执行内存泄漏分析。

经过一天的几次测试转储和捕获转储后,我看到模块clr.dll 在第一次转储中分配了 5.08 MB,第二次分配了 286.4 MB,第三次分配了 609.56 MB。

具体来说,分配增加是由clr!DoNDirectCall__PatchGetThreadCall+7b 引起的,它首先分配了 894.33 KB,第二个分配了 280.85 MB,第三个分配了 601.13 MB。以下是第三次转储中的一些调用堆栈 -

Call stack sample 1

Address   0x00730074`00210048 
Allocation Time   00:09:03 since tracking started 
Allocation Size   34 Bytes 


Function   Source   Destination 
clr!DoNDirectCall__PatchGetThreadCall+7b       
mscorlib_ni+b9597b       
mscorlib_ni+b940ed       
mscorlib_ni+b9513e       
System_Management_ni+dc561       
System_Management_ni+aa364       
System_Management_ni+e4616       

Call stack sample 2

Address   0x00730074`00210048 
Allocation Time   00:05:00 since tracking started 
Allocation Size   34 Bytes 


Function   Source   Destination 
clr!DoNDirectCall__PatchGetThreadCall+7b       
mscorlib_ni+9bb2cc       
mscorlib_ni+b934aa       
System_Management_ni+dc714       
System_Management_ni+acb99       
System_Management_ni+e41a5       


Call stack sample 3

Address   0x00730074`00210048 
Allocation Time   00:05:00 since tracking started 
Allocation Size   34 Bytes 


Function   Source   Destination 
clr!DoNDirectCall__PatchGetThreadCall+7b       
mscorlib_ni+9bb2cc       
mscorlib_ni+b934aa       
System_Management_ni+dc714       
System_Management_ni+acb99       
System_Management_ni+e41a5       
0x6448017AE50    

这可能是什么原因造成的,我该如何了解更多相关信息?

另外,我的代码使用可用的 C# 方法来运行远程 WMI 查询并检索该数据。

此外,我的 Native Heaps 使用量也增加了。我的应用程序有 40 个本机堆。最后一个堆的内存使用量总是增加。它的总使用量从 67.57 MB 到 1.59 GB 再到 3.82 GB。这可能是什么原因,这与clr的用法有关吗?

【问题讨论】:

标签: .net memory-leaks windbg heap-memory


【解决方案1】:

使用

!dumpheap -stat

在每个阶段。您可能能够发现在每个阶段哪种类型正在急剧增加。在这些对象上使用

!gcroot

从垃圾收集中找出持有它的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2014-05-07
    • 2022-07-26
    相关资源
    最近更新 更多