
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分析中箱线图数据怎么获取、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)