如何获得CPU使用率

2016-02-19 13:28 10 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的如何获得CPU使用率,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】


  NT/2000方法:
  
  #include windows.h
  #include conio.h
  #include stdio.h
  
  #define SystemBasicInformation       0
  #define SystemPerformanceInformation 2
  #define SystemTimeInformation        3
  
  #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
  
  typedef strUCt
  {
      DWord   dwUnknown1;
      ULONG   uKeMaximumIncrement;
      ULONG   uPageSize;
      ULONG   uMmNumberOfPhysicalPages;
      ULONG   uMmLowestPhysicalPage;
      ULONG   uMmHighestPhysicalPage;
      ULONG   uAllocationGranularity;
      PVOID   pLowestUserAddress;
      PVOID   pMmHighestUserAddress;
      ULONG   uKeActiveProcessors;
      BYTE    bKeNumberProcessors;
      BYTE    bUnknown2;
      WORD    wUnknown3;
  } SYSTEM_BASIC_INFORMATION;
  
  typedef struct
  {
      LARGE_INTEGER   liIdleTime;
      DWORD           dwSpare[76];
  } SYSTEM_PERFORMANCE_INFORMATION;
  
  typedef struct
  {
      LARGE_INTEGER liKeBootTime;
      LARGE_INTEGER liKeSystemTime;
      LARGE_INTEGER liEXPTimeZoneBias;
      ULONG         uCurrentTimeZoneId;
      DWORD         dwReserved;
  } SYSTEM_TIME_INFORMATION;
  
  
  // ntdll!NtQuerySystemInformation (NT specific!)
  //
  // The function copies the system information of the
  // specified type into a buffer
  //
  // NTSYSAPI
  // NTSTATUS
  // NTAPI
  // NtQuerySystemInformation(
  //    IN UINT SystemInformationClass,    // information type
  
   //    OUT PVOID SystemInformation,       // pointer to buffer
  //    IN ULONG SystemInformationLength,  // buffer size in bytes
  //    OUT PULONG ReturnLength OPTIONAL   // pointer to a 32-bit
  //                                       // variable that receives
  //                                       // the number of bytes
  //                                       // written to the buffer
  // );
  typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
  
  PROCNTQSI NtQuerySystemInformation;
  
  
  void main(void)
  {
      SYSTEM_PERFORMANCE_INFORMATION SysPerfInfo;
      SYSTEM_TIME_INFORMATION        SysTimeInfo;
      SYSTEM_BASIC_INFORMATION       SysBaseInfo;
      double                         dbIdleTime;
      double                         dbSystemTime;
      LONG                           status;
      LARGE_INTEGER                  liOldIdleTime = {0,0};
      LARGE_INTEGER                  liOldSystemTime = {0,0};
  
      NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(
                                            GetModuleHandle("ntdll"),
  
                                            "NtQuerySystemInformation"
                                           );
  
      if (!NtQuerySystemInformation)
          return;
  
      // get number of processors in the system
      status = NtQuerySystemInformation(SystemBasicInformation,&SysBaseInfo,sizeof(SysBaseInfo),NULL);
      if (status != NO_ERROR)
          return;
      
  printf("CPU Usage (press any key to exit):    ");
      while(!_kbhit())
      {
          // get new system time
      status = NtQuerySystemInformation(SystemTimeInformation,&SysTimeInfo,sizeof(SysTimeInfo),0);
          if (status!=NO_ERROR)
              return;
  
          // get new CPU's idle time
          status = NtQuerySystemInformation(SystemPerformanceInformation,&SysPerfInfo,sizeof(SysPerfInfo),NULL);
          if (status != NO_ERROR)
              return;
  
          // if it's a first call - skip it
         if (liOldIdleTime.QuadPart != 0)
         {
              // CurrentValue = NewValue - OldValue
       &nb

来源:http://www.tulaoshi.com/n/20160219/1604401.html

延伸阅读
标签: windows10
Win10系统CPU使用率高怎么办?   对于一些用户在将系统升级到win10后,用户在基本上没有运行大型软件的情况下,系统CPU使用率可以达到70%以上,在用户运行大型软件或游戏时,系统直接出现卡死或反映超慢的问题,对于出现这种问题,将严重影响我们的办公与娱乐需求,当然如果你遇到这类问题,我们可通过下方图老师小编听过的方法来降低...
标签: 电脑入门
在这win7下cpu使用率高怎么办呢? 只要两个步骤就可以轻松享受win7视频大宴,不用担心CPU使用率100%卡机等等问题 此为微软win7一个机制当检测到开启视频相关服务就将CPU多分配一些供其使用 解决办法分两步: 一、修改注册表 二、修改服务将其禁用 三、重新启动,ok,搞定!
标签: 电脑入门
在微软推出win10 9860 更新后,首先让众多用户们抓狂的问题便是,千方百计下载了Win10 9860 更新后,竟然无法成功安装。终于有一些坚持不懈的用户们成功安装上了。但是他们在用了一段时间后,又是苦水连连。 除了安装困难之外,这个版本还有一个毛病就是:CPU在没有人为操作的情况下,居然会占用最多50%的资源!再加上平时在线看弹幕视频,那...
标签: 生活常识
买家拍下商品的总金额=成功的每笔交易的成交价+所有关闭交易的拍下价格。拿上面的2月四笔交易来说,买家拍下商品的总金额就应该是前三笔交易收到的钱,再加上关闭的那笔交易的原价。 支付宝使用率怎么查?支付宝使用率哪里看? 什么是支付宝使用率 支付宝使用率=(实际使用支付宝的金额/买家拍下商品的总金额)*100% ...
标签: 电脑入门
Win7系统cpu使用率高的解决方法汇总: 1、你打开任务管理器,再点进程,看哪些程序占用了CPU,然后关掉就可以了。 2、在任务管理器中看看是那个进程占用CPU比较大,找到这样的进程后在百度上搜一下这个进程是干什么用的,知道是干什么用的之后就可以决定是留还是关。 3、使用3方软件,诸如超级兔子,硬件大师之流的。 4、木有办法,win7...

经验教程

636

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部