我目前正在尝试对我正在开发的C#项目进行内存分析,以确定是否存在泄漏,因为这个应用程序需要尽可能接近100%的运行时间。 我开始使用Ants Memory Profiler版本7.4,并注意到我的非托管内存随着时间的推移而不断增长,即使我的托管内存没有增加。
经过更多尝试,我尝试在一个仅仅阻塞在
我想使用其他一些工具,最好是类似于windbg或SOS的工具,来确定它看到的我的非托管内存使用情况。现在并不重要的是我知道里面有什么-虽然这可能有助于长期调试。我只是试图确定当前正在运行的应用程序的非托管内存使用情况。我想看看这是否真的是ANTS的问题还是我对环境工作方式的误解。使用某种.NET、Visual Studio或Windows工具来为我提供有关我的进程的准确信息将有助于解决这个问题。
经过更多尝试,我尝试在一个仅仅阻塞在
Console.ReadLine()
指令上的程序上进行类似的分析。我运行了分析并注意到同样的事情发生了。我的非托管堆逐渐增长。实际上,它似乎只会在垃圾收集器被调用(通过快照功能)时增长。为什么重复调用垃圾收集器会导致非托管内存无休止地增加?这与ANTS有关吗?我想使用其他一些工具,最好是类似于windbg或SOS的工具,来确定它看到的我的非托管内存使用情况。现在并不重要的是我知道里面有什么-虽然这可能有助于长期调试。我只是试图确定当前正在运行的应用程序的非托管内存使用情况。我想看看这是否真的是ANTS的问题还是我对环境工作方式的误解。使用某种.NET、Visual Studio或Windows工具来为我提供有关我的进程的准确信息将有助于解决这个问题。