轻松取得winnt下的系统资源信息(cpu利用率,内存使用情况,线程数 )

原创 2001年07月27日 11:41:00

看到好多朋友询问怎样得到系统信息(象任务管理器一样),前段时间研究了一番,有所领悟,现与大家共享。

  下面是部分测试代码:

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <pdh.h>

#define MAXPATH 80

int __cdecl _tmain (int argc, TCHAR **argv)
{

  HQUERY          hQuery;
  HCOUNTER        *pCounterHandle;
  PDH_STATUS      pdhStatus;
  PDH_FMT_COUNTERVALUE  fmtValue;
  DWORD          ctrType;
  CHAR            szPathBuffer[MAXPATH] = {'/0'};
  int            nRetCode = 0;

  // Open the query object.
  pdhStatus = PdhOpenQuery (0, 0, &hQuery);

  pCounterHandle = (HCOUNTER *)GlobalAlloc(GPTR, sizeof(HCOUNTER));

/*
//Processor(_Total)//% Processor Time CPU使用率
//System//Processes 当前系统进程数
//System//Threads 当前系统线程数
//Memory//Commit Limit 总共内存数K (包括虚拟内存)
//Memory//Committed Bytes 已用内存数K (包括虚拟内存)
//TCP//Connections Active 系统中已建立的 TCP连接个数
其它Object Items 可以利用PdhEnumObjects()和PdhEnumObjectItems()得到
反正我只要用到上面的东东:)
*/
  strcat(szPathBuffer,"//System//Processes");

  pdhStatus = PdhAddCounter (hQuery,
  szPathBuffer,
  0,
  pCounterHandle);
  // "Prime" counters that need two values to display a
  //  formatted value.
  pdhStatus = PdhCollectQueryData (hQuery);

  // Get the current value of this counter.
  pdhStatus = PdhGetFormattedCounterValue (*pCounterHandle,
                                              PDH_FMT_DOUBLE,
                                              &ctrType,
                                              &fmtValue);

    //fmtValue.doubleValue为所要的结果
    if (pdhStatus == ERROR_SUCCESS) {
        printf (TEXT(",/"%.20g/"/n"), fmtValue.doubleValue);
    }
else {
    // Print the error value.
        printf (TEXT("error./"-1/""));
  }

  // Close the query.
  pdhStatus = PdhCloseQuery (hQuery);

  return nRetCode;
}

 

性能指标之资源指标-CPU-利用率

假设EC=2,VP=8,EC利用率为200%,VP利用率为50%。在测试报告中描述CPU利用率为50%(按照CPU为8核计算,其中EC为2C,其他CPU为借用)。 2、最佳实践交易类测试通常在CPU...
  • lin443514407lin
  • lin443514407lin
  • 2017年03月21日 09:57
  • 522

python自动化运维学习------使用模块psutil获取系统cpu、内存、磁盘、网络、进程等信息

系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同事也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息,...
  • xianjie0318
  • xianjie0318
  • 2017年06月28日 10:58
  • 2304

linux服务器性能——CPU、内存、流量、磁盘使用率的监控

#!/bin/bash #这个脚本使用来统计CPU、磁盘、内存使用率、带宽的 total=0 system=0 user=0 i=0 time=`date "+%Y-%m-%d %k:%M"` da...
  • u012859748
  • u012859748
  • 2017年05月25日 16:51
  • 478

Linux查看CPU和内存使用情况

CPU占用率查看命令:top 图中红色部分即为占用百分率,下面是每个进程的CPU占用率,如果服务器是多核CPU可能在下方看到有些进程CPU占用超过100%,这种一般是该进程使用了多核。   内存占用...
  • z69183787
  • z69183787
  • 2016年11月25日 10:35
  • 5521

C#获取CPU占用率、内存占用、磁盘占用、进程信息

using System;    using System.Collections.Generic;    using System.Diagnostics;    using System.T...
  • hyy829119
  • hyy829119
  • 2013年10月04日 09:31
  • 3212

Android使用adb查看当前设备运行进程CPU内存等资源的使用情况

使用adb了解自己的应用是否大量消耗资源,优化性能必备之性能诊断
  • MeteorLuoyidong
  • MeteorLuoyidong
  • 2015年11月04日 09:06
  • 6058

ubuntu查看系统资源占用(内存,cpu和进程)

转载自网易博客:http://bluexp29.blog.163.com/blog/static/33858148201071534450856/ bluexp29的博客 li...
  • vivian187
  • vivian187
  • 2016年05月22日 17:40
  • 5714

java获取服务器CPU,内存,硬盘使用量

/**  *   *   * @author  wenkaixuan  * @version  [版本号, 2012-5-9]  * @see  [相关类/方法]  * @since  [产品/模块版...
  • sweet_hong
  • sweet_hong
  • 2015年11月06日 15:30
  • 2270

计算cpu利用率和内存利用率

Linux 下CPU、内存利用率--计算(二) 当需要频繁地获取,可以选择这种方法。 1、原理 (1)   CPU利用率 在Linux下,CPU利用率分为用户态,系统态和空闲态...
  • htjx99
  • htjx99
  • 2015年01月20日 17:08
  • 1877

MapReduce:计算Job运行时的CPU与内存平均利用率

Hadoop集群上运行有多道MapReduce Job,到底每个Job消费集群计算资源(CPU,内存)的情况如何,通常我们是不知道的。这节来探讨下如果想获得这些信息,应该怎样做。      每个...
  • fanlily913
  • fanlily913
  • 2017年07月03日 16:42
  • 180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:轻松取得winnt下的系统资源信息(cpu利用率,内存使用情况,线程数 )
举报原因:
原因补充:

(最多只允许输入30个字)