Windows PDH库在性能测试中的应用

相信大家都已经使用过了windows自带的性能测试工具perfmon。perfmon能够实时的抓取当前环境的硬件信息,并直观的展示出来。但是当你想在编程中利用这些数据,perfmon就不是那么方便了。那么windows是否提供了合适的api来完成这些功能呢?答案是肯定的,这就是Performance Data Helper(PDH)库。PDH库提供了一组功能强大的接口,让使用者能够方便的获取到包括CPU信息,内存信息,I/O信息等等在内的性能数据。

 

使用PDH库获取性能数据的过程如下:首先,通过打开一个查询(PdhOpenQuery()),然后在在该查询中添加需要的计数器(PdhAddCounter()),然后在合适的时间点采集数据PdhCollectQueryData(),然后在从结构PDH_FMT_COUNTERVALUE中得到数据(dhGetFormattedCounterValue())。在使用完成后,还需要关闭该查询。

 

在上面的过程中,我们需要定位到一个具体的计数器,作为api的参数。运行环境的硬件数据和OS数据的种类十分繁多,准确精炼的表示这些数据的意义是非常关键的。Windows的做法是一个被成为Counter Path的字符串表示。顾名思义,这个字符串非常类似于文件系统的文件路径。Counter Path的语法如下:

\\Computer\PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter

其中,Computer表示机器名或者IP地址,默认值为本机;PerfObject表示性能对象,通常为处理器,内存等等;ParentInstance,ObjectInstance和InstanceIndex是可选项,在对象有多个实例的时候用到;最后,Counter表示相应的寄存器。例如:

\\127.0.0.1\Processor\% Processor Time

该Counter Path表示本地的处理器的CPU利用率。将该字符串作为参数传递给PdhAddCounter就可以将该计数器添加到查询中去了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值