Windows PDH库在性能测试中的应用
原创
©著作权归作者所有:来自51CTO博客作者Intel_ISN的原创作品,请联系作者获取转载授权,否则将追究法律责任
相信大家都已经使用过了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就可以将该计数器添加到查询中去了。
上一篇:PERL & SHELL
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Tomcat在Windows中的配置流程
本文介绍在Windows操作系统中,下载、配置Tomcat的方法~
Java Windows Tomcat 开发环境 环境配置 -
LLM在OCR中的应用
LLM在OCR中的应用
预处理 sed 验证码 -
CyclicBarrier类在性能测试中应用
CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达
性能优化 构造方法 性能测试 当前用户 -
AspectJ在测试中的应用
软件设计的一个重要原则,就是要清晰分离各种关注点,然后分而治之,各个击破,最后形成同一的解决方案。
职场 测试 应用 休闲 AspectJ -
Python在接口测试中的应用
试的方式有很多,可以使用的工具有jmeter,postman,soapUI等,也可以
掘金·日新计划 python 测试工具 服务端