VC下使用 Windows 的性能计数器简介
2006-07-20 11:41:28 来源:WEB开发网PDH_FMT_COUNTERVALUE fmtValue ;
第四步:关闭计数器
DWORD dwctrType ;
__try
{
pdhStatus = PdhAddCounter ( hQuery ,
_TEXT ( "Process(_TEXT ( "QQ" ))\\%Processor Time" ),
0,
pCounterHandle ) ;
if ( pdhStatus != ERROR_SUCCESS )
{
__leave ;
}
pdhStatus = PdhCollectQueryData ( hQuery ) ;
if ( pdhStatus != ERROR_SUCCESS )
{
__leave ;
}
// 得到当前计数器值
pdhStatus = PdhGetFormattedCounterValue ( * pCounterHandle,
PDH_FMT_DOUBLE,
& dwctrType,
& fmtValue ) ;
if ( pdhStatus != ERROR_SUCCESS )
{
__leave ;
}
// fmtValue.doubleValue就是当前此时此刻该程序的CPU使用率(循环调用就可得到实时数据)
}
__finally
{
if ( AbnormalTermination () )
{
}
}
pdhStatus = PdhCloseQuery ( hQuery ) ;
是不是很简单呀!上面例子中PdhAddCounter函数是添加计数器,它的第二个参数就是计数器地址,我们可以更换其它的,以获得其它计数数据。(详细请查询MSDN)Windows 的性能计数器可以获得好几百项系统计数信息,几乎所有和计数有关的信息都可以得到。说到这里一定有朋友要问:“我还能得到哪些信息?这么多的计数器又代表什么含义?”,我们继续向下看。
if ( pdhStatus == ERROR_SUCCESS )
{
// 关闭成功
}
else
{
// 关闭失败
}
更多精彩
赞助商链接