图形显示CPU内存利用率

一、程序运行界面如下:

二、程序思想与要点:

1)、本程序分两种情况来获取CPU的利用率,NT下利用ntdll.dll中没有公开的API: NtQuerySystemInformation, 9x下利用注册表来获取CPU的利用率

code:NT

typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
  PROCNTQSI NtQuerySystemInformation;
  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;
  }
   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 (m_liOldIdleTime.QuadPart != 0)
   {
     // CurrentValue = NewValue - OldValue
     dbIdleTime = Li2Double(SysPerfInfo.liIdleTime) - Li2Double(m_liOldIdleTime);
     dbSystemTime = Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(m_liOldSystemTime);
     // CurrentCpuIdle = IdleTime / SystemTime
     dbIdleTime = dbIdleTime / dbSystemTime;
     // CurrentCpuUsage% = 100 - (CurrentCpuIdle * 100) / NumberOfProcessors
     dbIdleTime = 100.0 - dbIdleTime * 100.0 / (double)SysBaseInfo.bKeNumberProcessors + 0.5;
     m_fNewUsges = (UINT)dbIdleTime;
   }

9x略

时间: 2024-11-02 13:14:48

图形显示CPU内存利用率的相关文章

windows-Windows服务器如何使用可以达到最佳使用率(CPU,内存等资源)?

问题描述 Windows服务器如何使用可以达到最佳使用率(CPU,内存等资源)? Windows服务器如何使用可以达到最佳使用率(CPU,内存等资源) A:服务器 Windows服务器配置信息如下: CPU:Intel(R) Xen(R) CPU E5-2403 0 @ 1.80GHz 1.80Ghz(2处理器) 内存:32.0GB 硬盘:2T 带宽:50Mb B:服务器 Windows服务器配置信息如下: CPU:Intel(R) Xen(R) CPU E5-2403 0 @ 1.80GHz

使用Python实现对Linux服务器CPU内存网络的监控脚本

本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写.Python 是由 Guido van Rossum 开发的.可免费获得的.非常高级的解释型语言.其语法简单易懂,而其面向对象的语义功能强大(但又灵活).Python 可以广泛使用并具有高度的可移植性.本文 Linux 服务器是 Ubuntu 12.10, Python 版本 是 2.7 .如果是 Python 3.0 版本的语法上有一定的出入.另外这里笔者所说的 Python 是 CPython

win7系统使用pptv看电影占用CPU内存高达100%怎么办

  win7系统使用pptv看电影占用CPU内存高达100%怎么办?说起pptv相信大家都不会陌生了,pptv是一款全球安装量最大的网络电视,拥有高清视频,一些win7系统用户使用pptv看电影时,发现pptv占用大量的CPU内存,已经高达100%,如果这时候打开其他程序很容易出现卡机现象,而且系统运行速度也会变慢很多,怎么办呢?这时候我们需要对pptv进行一些简单的设置,下面一起看看具体的解决方法. 1.如果我们不是从官方网站下载的pptv的话可以到官方下载最新版本的pptv了; 2.如果是官

如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况

问题描述 如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况 如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况,参考什么书籍或知识点! 解决方案 http://download.csdn.net/detail/ww516617119/7178777 解决方案二: google wmi 性能计数器 <你用的语言> 结果就有了 解决方案三: 楼上这个连接有点厉害,我觉的吧得深入了解win32 sdk,学的快的话,还是调用别人的库 解决方案四: WM

脚本-linux获取CPU内存占用信息

问题描述 linux获取CPU内存占用信息 想弄个脚本定时记录,linux 占用最高CPU 内存的进程. 生成友好阅读的日志,或者将查到的信息追加到日志文件中也行. 然后放到crontab里去执行. 但是有个前提,不使用ps命令. 网上找了一堆,可以使用这个方式,但是我不能使用PS命令,请问有什么办法吗: linux下获取占用 CPU 资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linu

使用.NET FrameWork获取CPU,内存使用率以及磁盘空间

原文:使用.NET FrameWork获取CPU,内存使用率以及磁盘空间       在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现.但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息.首先,介绍几个要用到的类:      PerformanceCounter:表示windows NT性能计数器组件      ComputerInfo:提供用于获取与计算机内存,已加载程序集,名称和操作系统有关信息

统计和分析系统性能【IO CPU 内存】的工具集合

统计和分析系统性能[IO CPU 内存]的工具集合 blktrace http://www.oschina.net/p/blktrace 获取磁盘写入的信息 root@demo:~/install/percona-toolkit-2.2.1# debugfs -R 'stats' /dev/sda1 debugfs 1.41.11 (14-Mar-2010) debugfs -R 'stats' /dev/sda1|grep Block debugfs 1.41.11 (14-Mar-2010)

从JVM并发看CPU内存指令重排序(Memory Reordering)

这两天,我拜读了 Dennis Byrne 写的一片博文Memory Barriers and JVM Concurrency (中译文内存屏障与JVM并发). 文中提到: 对主存的一次访问一般花费硬件的数百次时钟周期.处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操作的顺序.也就是说,程序的读写操作不一定会按照它要求处理器的顺序执行. 这段话是作者对内存屏障重要性的定义.通过cache降低内存延迟,这句话很好理解.但后面那句"为了性能重排序内存

如何提高电脑内存利用率?

  如何优化内存的管理,提高内存的使用效率,尽可能地提高运行速度,是我们所关心的问题.下面介绍在Windows操作系统中,提高内存的使用效率和优化内存管理的几种方法. 方法一:调整高速缓存区域的大小 可以在"计算机的主要用途"选项卡中设置系统利用高速缓存的比例(针对Windows 98).如果系统的内存较多,可选择"网络服务器",这样系统将用较多的内存作为高速缓存.在CD-ROM标签中,可以直接调节系统用多少内存作为CD-ROM光盘读写的高速缓存. 方法二:监视内存