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

简介:
相信大家都已经使用过了windows自带的性能测试工具perfmonperfmon能够实时的抓取当前环境的硬件信息,并直观的展示出来。但是当你想在编程中利用这些数据,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表示性能对象,通常为处理器,内存等等;ParentInstanceObjectInstanceInstanceIndex是可选项,在对象有多个实例的时候用到;最后,Counter表示相应的寄存器。例如:
\\127.0.0.1\Processor\% Processor Time
Counter Path表示本地的处理器的CPU利用率。将该字符串作为参数传递给PdhAddCounter就可以将该计数器添加到查询中去了。

本文转自Intel_ISN 51CTO博客,原文链接:http://blog.51cto.com/intelisn/130728,如需转载请自行联系原作者
 
相关文章
|
11月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
480 6
|
9月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
467 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
9月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
1057 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
10月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
541 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
10月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
603 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
9月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
334 11
|
9月前
|
Java 测试技术 网络安全
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
406 0
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
|
10月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
1233 11
|
10月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
709 0
|
安全 Linux 测试技术
OpenText Static Application Security Testing (Fortify) 25.3 (macOS, Linux, Windows) - 静态应用安全测试
OpenText Static Application Security Testing (Fortify) 25.3 (macOS, Linux, Windows) - 静态应用安全测试
861 0