我们有 C#.Net windows 应用程序,我需要从这个应用程序跟踪当前运行进程的内存和 CPU 使用细节。我尝试了下面提到的代码来获取内存详细信息。
Process curProcess=Process.GetCurrentProcess();
Console.Writeline(curProcess.PrivateMemorySize64);
Console.Writeline(curProcess.VirtualMemorySize64);
Console.Writeline(curProcess.PagedMemorySize64);
Console.Writeline(curProcess.NonpagedSystemMemorySize64);
var counter = new PerformanceCounter("Process", "Working Set - Private", Process.GetCurrentProcess().ProcessName);
Console.Writeline(curProcess.PagedMemorySize64);
Console.Writeline(counter.RawValue);
以上所有代码都给出了整个进程的内存详细信息,但我的要求是获得以下详细信息,
- 内存中的对象列表和相应对象的内存分配,
- 垃圾收集器收集的内存量,
- 未处置的对象计数及其名称,
进程线程及其关系。
请给我一些代码示例以实现我的要求。
注意:我尝试了 CLR 配置文件和 ANTS 配置文件来获取有关内存的详细信息,但我确实需要示例代码来在我的应用程序中实现。
非常感谢。