如何编程获取Windows NT的性能数据

如何编程获取Windows NT的性能数据,第1张

访问注册表性能蜂巢获取性能数据

1、注册表性能蜂巢

在NT的注册表中有一类特殊的蜂巢,它就是性能蜂巢HKEY_PERFORMANCE_DATA。说它特殊是因为,此蜂巢不同于其它的蜂巢如HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER等,用户使用注册表编辑器无法看到此蜂巢,只能够通过Registry API函数来访问它。虽然HKEY_PERFORMANCE_DATA是一个与性能数据相关的蜂巢,但NT的性能数据实际上不是以硬件或软件参数的方式存储在注册表中的,程序通过使用带HKEY_PERFORMANCE_DATA键的 Win32 Registry API函数使系统收集合适的系统对象管理器中的数据。

2、收集性能数据方法

如果是收集本地系统的性能数据,可以使用带有参数HKEY_PERFORMANCE_DATA 键的RegQueryValueEx函数,在完成收集工作后一定要使用RegCloseKey关闭。如要访问远程系统的性能数据,则必须使用带有远程系统机器名字和HKEY_PERFORMANCE_DATA 键的RegConnectRegistry函数。该函数返回代表远程系统性能数据的句柄,作为随后调用RegQueryValueEx函数的参数(而不是使用HKEY_PERFORMANCE_DATA 键)。

使用PDHDLL动态链接库中的API函数获取性能数据

PDH(Performance Data Helper)库的实现也是通过访问注册表获取性能参数,只不过它的API函数对用户屏蔽了很多的实现细节,使得编程的界面更简单、易于 *** 作。在VC++50中只包括有pdhh和pdhlib,而pdhdll在Win32 SDK中有,其函数都以Pdh开头。使用PDH库获取性能数据的步骤如下:

(1) 创建一个计数器队列,并添加要采样计数器

(2) 收集性能数据

(3) 计算、显示最终结果

(4) 结束性能数据收集

下面给出用PDH库中API实现上面的方法完成的获取处理器时间%Processor Time的代码。

static HQUERY hQuery = NULL;

CString name; // 机器名

HCOUNTER hCounter;

PDH_STATUS pdhStatus;

PDH_COUNTER_PATH_ELEMENTS pdh_Path;

DWORD dwType;

PDH_FMT_COUNTERVALUE pValue;

CHAR szCounterBuffer[MAX_PATH];

DWORD length = MAX_PATH;

name = "\\"+name;

pdh_PathszMachineName = nameGetBuffer(nameGetLength());

pdh_PathszObjectName = "Processor";

pdh_PathszInstanceName = "0";

pdh_PathszParentInstance = NULL;

pdh_PathdwInstanceIndex = 0;

pdh_PathszCounterName = "% Processor Time";

// 产生完整的路径

PdhMakeCounterPath ( &pdh_Path, szCounterBuffer, &length, 0);

// 初始化打开 (1 )

pdhStatus = PdhOpenQuery (NULL, 0, &hQuery);

// 添加要采样的计数器

pdhStatus = PdhAddCounter (hQuery, szCounterBuffer, 0, &hCounter);

// 第一次采样数据(2)

pdhStatus = PdhCollectQueryData (hQuery);

Sleep(1000); // 采样间隔

// 采样数据循环

while(bStop)

{

// 采样

pdhStatus = PdhCollectQueryData (hQuery);

// 计算最终结果(3)

// PdhGetFormattedCounterValue函数针对最近的采样结果进行计算

pdhStatus = PdhGetFormattedCounterValue( hCounter,

PDH_FMT_DOUBLE,

&dwType,

&pValue);

if(pValuedoubleValue<0) pValuedoubleValue = (FLOAT)00f;

Sleep(1000); // 采样间隔

}

// 结束收集 (4)

PdhCloseQuery(hQuery);

meta分析中箱线图数据获取步骤如下:

1、确定所需要进行meta分析的研究,并收集这些研究的原始数据。

2、对每个研究的效应大小进行计算,并计算出各项指标的平均数、标准差和置信区间等统计量。

3、将每个研究的统计量整理成一个数据表格,并将这张表格导入到统计软件中,例如R语言或者Stata。

4、在统计软件中,使用绘图函数,绘制箱线图,并调整图形参数,比如轴标签、标题、颜色等。

5、将生成的箱线图保存为文件或者复制到其他文档中进行展示。

以上就是关于如何编程获取Windows NT的性能数据全部的内容,包括:如何编程获取Windows NT的性能数据、meta分析中箱线图数据怎么获取、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9354051.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存