列举所有进程的CPU占用率)   
  typedef   struct   _THREAD_INFO   
  {   
  LARGE_INTEGER   CreateTime;   
  DWORD   dwUnknown1;   
  DWORD   dwStartAddress;   
  DWORD   StartEIP;   
  DWORD   dwOwnerPID;   
  DWORD   dwThreadId;   
  DWORD   dwCurrentPriority;   
  DWORD   dwBasePriority;   
  DWORD   dwContextSwitches;   
  DWORD   Unknown;   
  DWORD   WaitReason;   
    
  }THREADINFO,   *PTHREADINFO;   
    
  typedef   struct   _UNICODE_STRING   
  {   
  USHORT   Length;   
  USHORT   MaxLength;   
  PWSTR   Buffer;   
    
  }   UNICODE_STRING;   
    
  typedef   struct   _PROCESS_INFO   
  {   
  DWORD   dwOffset;   
  DWORD   dwThreadsCount;   
  DWORD   dwUnused1[6];   
  LARGE_INTEGER   CreateTime;   
  LARGE_INTEGER   UserTime;   
  LARGE_INTEGER   KernelTime;   
  UNICODE_STRING   ProcessName;   
    
  DWORD   dwBasePriority;   
  DWORD   dwProcessID;   
  DWORD   dwParentProcessId;   
  DWORD   dwHandleCount;   
  DWORD   dwUnused3[2];   
    
  DWORD   dwVirtualBytesPeak;   
  DWORD   dwVirtualBytes;   
  ULONG   dwPageFaults;   
  DWORD   dwWorkingSetPeak;   
  DWORD   dwWorkingSet;   
  DWORD   dwQuotaPeakPagedPoolUsage;   
  DWORD   dwQuotaPagedPoolUsage;   
  DWORD   dwQuotaPeakNonPagedPoolUsage;   
  DWORD   dwQuotaNonPagedPoolUsage;   
  DWORD   dwPageFileUsage;   
  DWORD   dwPageFileUsagePeak;   
    
  DWORD   dCommitCharge;   
  THREADINFO   ThreadSysInfo[1];   
    
  }   PROCESSINFO,   *PPROCESSINFO;   
    
    
  //每秒钟查询一次   
  void   __fastcall   TForm1::Timer1Timer(TObject   *Sender)   
  {   
  Button2Click(NULL);   
  }   
  //---------------------------------------------------------------------------   
    
  void   __fastcall   TForm1::Button2Click(TObject   *Sender)   
  {   
  PVOID   pProcInfo   =   NULL;   
  DWORD   dwInfoSize   =   0x20000;   
  PPROCESSINFO   pProcessInfo;   
  DWORD   dwWorkingSet;   
  long   (   __stdcall   *NtQuerySystemInformation   )(   DWORD,   PVOID,   DWORD,   DWORD   );   
    
    
  static   __int64   LastTotalProcessCPUUsage   =   0;   
  static   __int64   LastCurrentProcessCPUUsage   =   0;   
    
  int   CurrentDelta;   
  int   TotalDelta;   
    
  __int64   TotalProcessCPUUsage   =   0;   
  __int64   CurrentProcessCPUUsage   =   0;   
    
  /   
    
  pProcInfo   =   (PVOID)(new   byte[dwInfoSize]);   
    
  NtQuerySystemInformation   =   (long(__stdcall*)(DWORD,PVOID,DWORD,DWORD))   
  GetProcAddress(   GetModuleHandle(   "ntdll.dll"   ),"NtQuerySystemInformation"   );   
    
  NtQuerySystemInformation(5,pProcInfo,dwInfoSize,0);   
    
  pProcessInfo   =   (PPROCESSINFO)pProcInfo;   
    
  do   
  {   
  TotalProcessCPUUsage   +=   (__int64)pProcessInfo->KernelTime.QuadPart   +   (__int64)pProcessInfo->UserTime.QuadPart;   
    
  if(pProcessInfo->dwProcessID   ==   GetCurrentProcessId())   
  {   
  dwWorkingSet   =   pProcessInfo->dwWorkingSet;     
  CurrentProcessCPUUsage   +=   (__int64)pProcessInfo->KernelTime.QuadPart   +   (__int64)pProcessInfo->UserTime.QuadPart;   
  }   
    
  /   
  if(pProcessInfo->dwOffset   ==   0)   
  {   
  break;   
  }   
    
  pProcessInfo   =   (PPROCESSINFO)((byte*)pProcessInfo   +   pProcessInfo->dwOffset);   
  }   
  while(true);   
    
  TotalDelta   =   TotalProcessCPUUsage   -   LastTotalProcessCPUUsage;   
  CurrentDelta   =   CurrentProcessCPUUsage   -   LastCurrentProcessCPUUsage;   
    
  if(TotalDelta   !=   0)   
  this->Caption   =   "CPU   =   "   +   IntToStr(100   *   CurrentDelta   /   TotalDelta)   +     
  "Memory   =   "+   IntToStr(dwWorkingSet   /   1024)   "   K";   
    
  LastTotalProcessCPUUsage   =   TotalProcessCPUUsage;   
  LastCurrentProcessCPUUsage   =   CurrentProcessCPUUsage;   
    
  delete[]   pProcInfo;   
  }

获得系统中某个进程的cpu使用率相关推荐

  1. 解决linux 系统中Mysql 进程占用CPU 300%故障

    今日接到同事的电话,说微信公共帐号中的游戏无法登陆,用户不能玩了,麻烦尽快解决. 1.登陆IDC机房查看服务器流量图,流量正常,排除故障与流量无关. 2.登陆微信公共帐号中的游戏所在服务器发现系统互载 ...

  2. linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...

    如果你在Deepin Linux.Debian.Ubuntu系统中遇到kworker进程占用CPU达到100%,可以用以下解决方法解决问题,本文主要内容为问题起因.microcode介绍.解决方法及总 ...

  3. linux的mysql占用cpu过高_linux 系统中Mysql 进程占用cpu过高的解决

    mysql进程CPU使用率过高,开始报警了. 为了快速解决问题直接重启mysql服务后,再查sysql进程CPU使用率依旧高居不下.故障还没有解决,继续寻找原因. 3.登陆mysql数据库,执行sho ...

  4. 解决linux中Kipmi0进程对CPU使用率很高问题

    突然top发现Kipmi0进程一直占用近乎100%的一个核的资源,并且已经持续了很长一段时间. google查不到多少资料,看到一篇说法:是一些平台接口的管理器.不敢贸然杀死,再查查资料. 看看专业的 ...

  5. android cpu负载 工具,计算Android中进程的CPU使用率

    我正在尝试按以下方式计算Android中进程的CPU使用率,但是由于产生的输出,我不确定它是否正确. 要将吉菲转换为秒:吉菲/赫兹 第一步: 使用/proc/uptime文件的第一个参数获取正常运行时 ...

  6. linux下java多线程_Linux系统下Java问题排查——cpu使用率过高或多线程锁问题

    原标题:Linux系统下Java问题排查--cpu使用率过高或多线程锁问题 一个系统.特别是多线程并发的后台系统,在某些特定场景下,可能触发系统中的bug:导致cpu一直居高不下.进程hang了或处理 ...

  7. Linux系统中的进程管理

    Linux系统中的进程管理 了解进程 进程是已启动的可执行程序的运行实例,进程有以下组成部分: • 已分配内存的地址空间: • 安全属性,包括所有权凭据和特权: • 程序代码的一个或多个执行线程: • ...

  8. Android系统中的进程管理:进程的优先级

    本文是Android进程管理系列文章的第二篇,会讲解进程管理中的优先级管理. 进程管理的第一篇文章:<进程的创建>请跳转至这里. 本文适合Android平台的应用程序开发者,也适合对于An ...

  9. 9.7 top:实时显示系统中各个进程的资源占用状况

    top命令 用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各个进程的资源占用状况.该命令可以按照CPU的使用.内存的使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式 ...

最新文章

  1. Swift语言指南(十)--字符串与字符
  2. oracle中导出的sql文件转入mysql中的工作记录
  3. Mybatis-sql语句的抽取
  4. ember.js_如何设置基本的Ember.js应用
  5. spring mvc学习(60):ssm项目整合
  6. java2的7次方怎么表示_一元二次方程常见题型之方程根的解法
  7. java特殊类型_java中如何查找某个特定类型作为形参的方法
  8. .net mysql 参数,在MySQL .NET Provider中使用命名参数
  9. Atitit 网络编程之道
  10. 超级计算机更深的蓝,国际象棋发生革命性变化 老棋手深感力不从心
  11. 我的TLS1.3之旅
  12. Ubuntu查找文件
  13. 世界人工智能大会开幕,云计算概念股大涨
  14. 手机快播安卓版 Qvod player V1.0.19
  15. 天载网上炒股大盘缩量诱多
  16. Verilog语言入门
  17. LDAP 中的 RDN
  18. EeePC各项硬件参数
  19. 中国数字油画网 数字油画软件 照片转数字油画 ai制作数字油画
  20. django 实现统一登录(未完待续)

热门文章

  1. Eclipse中单元测试
  2. 使用apache FileUtils下载文件
  3. word 2013 题注、图注、插入图片自动修改大小、批量更新题注编号
  4. 2018-2019-1 20189213《Linux内核原理与分析》第四周作业
  5. Verilog语言实现并行(循环冗余码)CRC校验
  6. linix防火墙设置之顺序设置问题 -- 解决防火墙规则顺序和插入规则到指定序号的问题...
  7. LeetCode 111. Minimum Depth of Binary Tree
  8. [deviceone开发]-do_RichLabel的简单示例
  9. iOS项目开发— CoreLocation的定位服务和地理编码与发编码实现
  10. python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)...