C# 如何以编程方式记录PerformanceCounter
我知道使用C# 如何以编程方式记录PerformanceCounter,c#,.net,logging,performancecounter,perfmon,C#,.net,Logging,Performancecounter,Perfmon,我知道使用Perfmon.msc可以创建自定义性能计数器,通过使用计数器日志,可以将计数器值写入文本文件 我还知道,我也可以通过使用创建性能计数器,并使用NextValue()方法获取计数器值,从而以编程方式使用此方法。 是否有一种编程方法告诉PerformanceCounter对象也将日志写入文本文件(类似于perfmon.msc中的计数器日志)?在.NET中,您必须自己对计数器进行采样,并将采样值写入文件。但是,Win32 API有一些函数可以实现您想要的功能。有关本机API的示例,请参阅。
Perfmon.msc
可以创建自定义性能计数器,通过使用计数器日志,可以将计数器值写入文本文件
我还知道,我也可以通过使用创建性能计数器,并使用NextValue()
方法获取计数器值,从而以编程方式使用此方法。
是否有一种编程方法告诉
PerformanceCounter
对象也将日志写入文本文件(类似于perfmon.msc
中的计数器日志)?在.NET中,您必须自己对计数器进行采样,并将采样值写入文件。但是,Win32 API有一些函数可以实现您想要的功能。有关本机API的示例,请参阅。您可以尝试使用p/invoke来调用API。按照另一张海报的建议使用p/invoke会带来很多麻烦。我建议使用System.Diagnostics.Process.Start()
从命令行运行PerfMon已经能够为任意一组计数器以各种格式将日志集合安排到文件中。是的,但我没有找到这样做的方法programmatically@LouisRhys:仅当您使用平台调用(p/invoke)时从托管代码调用API或在API周围创建托管C++包装器。P/invoke可能更容易,但有些API确实很难用这种方式调用。我自己还没有试过PDH API。