如何以编程方式记录 PerformanceCounter
据我了解,使用 Perfmon.msc
您可以创建自定义性能计数器,并通过使用计数器日志,您可以将计数器值写入文本文件。
我还了解我还可以通过使用 System.Diagnostics.PerformanceCounter
,并使用NextValue()
方法获取计数器值。 是否有一种编程方式来告诉 PerformanceCounter 对象将日志写入文本文件(类似于 perfmon.msc 中的计数器日志)?
I understand that using Perfmon.msc
you can create a custom performance counter and by using counter log, you can write the counter value to a text file.
I also understand I can also use this programmatically by creating a performance counter by using System.Diagnostics.PerformanceCounter
, and get the counter value using NextValue()
method.
Is there a programmatical way to tell the PerformanceCounter
object to write the log to a text file too (similar to Counter Log in perfmon.msc
)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 .NET 中,您必须自己对计数器进行采样并将采样值写入文件。然而,Win32 API 具有执行您想要的功能的函数。有关本机 API 的示例,请参阅写入性能数据到日志文件。您可以尝试使用 p/invoke 来调用 API。
In .NET you will have to sample the counter yourself and write the sampled value to a file. However, the Win32 API has functions to do what you want. For an example of the native API see Writing Performance Data to a Log File. You could try to use p/invoke to call the API.
按照另一张海报的建议使用 P/Invoke 太麻烦了。我建议使用 logman 从命令行运行 <代码>System.Diagnostics.Process.Start()
Using P/Invoke as suggested by another poster gave too much trouble. I suggest running logman from command line using
System.Diagnostics.Process.Start()