C# System.Diagnostics.PerformanceCounter测量每个模块的CPU利用率

C# System.Diagnostics.PerformanceCounter测量每个模块的CPU利用率,c#,.net,performance,module,system.diagnostics,C#,.net,Performance,Module,System.diagnostics,是否可以跟踪进程中每个模块的cpu利用率?在下面的代码中,可以确定myProcess中每个模块的CPU和内存消耗 Process[] currentProcesses = Process.GetProcesses(); Process myProcess = currentProcesses[0]; using (PerformanceCounter pcProcess = new PerformanceCounter( "Process", "% Processor

是否可以跟踪进程中每个模块的cpu利用率?在下面的代码中,可以确定myProcess中每个模块的CPU和内存消耗

Process[] currentProcesses = Process.GetProcesses();
Process myProcess = currentProcesses[0];

using (PerformanceCounter pcProcess = new PerformanceCounter(
    "Process", 
    "% Processor    Time", 
    targetProcess.ProcessName))
using (PerformanceCounter memProcess = new PerformanceCounter(
    "Process",   
    "Working Set - Private",
    targetProcess.ProcessName))
{
    pcProcess.NextValue();
}

这是不可能的,您需要使用探查器。我使用了windows performance analyzer,它提供了所需的模块级CPU使用率数据,但问题是,我想自动执行此过程,并检索单个进程的模块级统计信息,即使是1分钟的WPA记录也会创建大于1GB的ETL文件。是否可以使用WPA只记录单个进程的概要文件数据,以保持ETL文件的小尺寸?