WEB开发网
开发学院软件开发VC VC下使用 Windows 的性能计数器简介 阅读

VC下使用 Windows 的性能计数器简介

 2006-07-20 11:41:28 来源:WEB开发网   
核心提示: PDH_FMT_COUNTERVALUEfmtValue ;DWORDdwctrType ;__try{pdhStatus = PdhAddCounter ( hQuery ,_TEXT ( "Process(_TEXT ( "QQ" ))\\%Process

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 ) ;
if ( pdhStatus == ERROR_SUCCESS )
{
  // 关闭成功
}
else
{
  // 关闭失败
}
  是不是很简单呀!上面例子中PdhAddCounter函数是添加计数器,它的第二个参数就是计数器地址,我们可以更换其它的,以获得其它计数数据。(详细请查询MSDN)Windows 的性能计数器可以获得好几百项系统计数信息,几乎所有和计数有关的信息都可以得到。说到这里一定有朋友要问:“我还能得到哪些信息?这么多的计数器又代表什么含义?”,我们继续向下看。

上一页  1 2 3 4 5  下一页

Tags:VC 使用 Windows

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接