在C#中获取进程内存分配(内存中的对象)的详细信息

本文关键字:内存 对象 详细信息 取进程 分配 获取 | 更新日期: 2023-09-27 18:25:06

我们有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概要文件来获得有关内存的详细信息,但我确实需要在应用程序中实现示例代码。

非常感谢。

在C#中获取进程内存分配(内存中的对象)的详细信息

用于获取有关处理器、操作系统等的信息:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Management;
namespace HaardDiskInfoCSharp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            ManagementObjectSearcher mosProcessor = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
            foreach (ManagementObject moProcessor in mosProcessor.Get())
            {
                if(moProcessor["maxclockspeed"]!=null)
                    lblPMCSpeed.Text = moProcessor["maxclockspeed"].ToString();
                if(moProcessor["datawidth"]!=null)
                    lblPDataWidth.Text = moProcessor["datawidth"].ToString();
                if(moProcessor["name"]!=null)
                    lblPName.Text=moProcessor["name"].ToString();
                if(moProcessor["manufacturer"]!=null)
                    lblPManufacture.Text = moProcessor["manufacturer"].ToString();
            }
        }
    }
}

来源。