应用程序内存使用跟踪

35 浏览
0 Comments

应用程序内存使用跟踪

我们有一个C#.Net的Windows应用程序,我想知道如何获取我的应用程序的内存消耗详情。我已经尝试使用System.Diagnostics.Process获取当前进程的内存信息。我需要知道内存中有多少个对象,并且每个对象的内存消耗详情。

0
0 Comments

问题的出现原因是要跟踪应用程序的内存使用情况,以获取对象及其内存分配细节。现有的解决方法包括使用垃圾收集器、使用.NET性能分析器、使用自定义.NET分析器以及获取源代码来获取对象及其内存分配细节。

垃圾收集器可以通过以下成员来获取总分配内存量和垃圾收集次数:

GC.GetTotalMemory()
GC.CollectionCount()

使用.NET性能分析器可以跟踪应用程序的内存使用情况。可以参考以下文章来了解如何使用.NET性能分析器:

[https://stackoverflow.com/questions/3927](https://stackoverflow.com/questions/3927)

如果需要更多定制化的功能,可以编写自己的.NET分析器。以下文章可能对编写自定义.NET分析器有帮助:

[http://www.codeproject.com/Articles/15410/Creating-a-Custom-NET-Profiler](http://www.codeproject.com/Articles/15410/Creating-a-Custom-NET-Profiler)

此外,还可以参考已更新的答案来获取对象及其内存分配细节。具体实现的源代码可能需要查看相关链接。

0