使用.NET FrameWork获取CPU,内存使用率以及磁盘空间
在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现。但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息。首先,介绍几个要用到的类:
PerformanceCounter:表示windows NT性能计数器组件
ComputerInfo:提供用于获取与计算机内存,已加载程序集,名称和操作系统有关信息的属性
DriveInfo:该类位于System.IO命名空间下,提供对有关驱动器信息的访问
介绍完几个必要的类,就开始实践吧:
1.初始化几个变量:
this.cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total");
this.cinf = new ComputerInfo();
2.获取占用CPU的百分比
public double GetCpuPercent()
{
var percentage = this.cpu.NextValue();
return Math.Round(percentage, , MidpointRounding.AwayFromZero);
}
3.获取占用内存的百分比
public double GetMemoryPercent()
{
var usedMem = this.cinf.TotalPhysicalMemory - this.cinf .AvailablePhysicalMemory ;//总内存减去可用内存
return Math.Round(
(double)(usedMem / Convert.ToDecimal(this.cinf.TotalPhysicalMemory) * ),
,
MidpointRounding.AwayFromZero);
}
4.获取磁盘剩余空间及总空间
/// <summary>
/// 根据盘符获取磁盘信息
/// </summary>
/// <param name="diskName"></param>
/// <returns>一个自定义类对象</returns>
public HardDiskInfo GetHardDiskInfoByName(string diskName)
{
DriveInfo drive = new DriveInfo(diskName);
return new HardDiskInfo { FreeSpace = GetDriveData(drive.AvailableFreeSpace),TotalSpace =GetDriveData (drive.TotalSize ),Name =drive .Name };
}
/// <summary>
/// 获取所有驱动盘信息
/// </summary>
/// <returns></returns>
public IEnumerable<HardDiskInfo> GetAllHardDiskInfo()
{
List<HardDiskInfo> list = new List<HardDiskInfo>();
foreach (DriveInfo d in DriveInfo.GetDrives())
{
if (d.IsReady)
{
list.Add(new HardDiskInfo { Name = d.Name, FreeSpace = this.GetDriveData(d.AvailableFreeSpace), TotalSpace = this.GetDriveData(d.TotalSize) });
}
}
return list;
} private string GetDriveData(long data)//将磁盘大小的单位由byte转化为G
{
return (data / Convert.ToDouble() / Convert.ToDouble() / Convert.ToDouble()).ToString("0.00");
} class HardDiskInfo//自定义类
{
public string Name { get; set; }
public string FreeSpace { get; set; }
public string TotalSpace { get;set;}
}
运行结果:

Demo下载:
使用.NET FrameWork获取CPU,内存使用率以及磁盘空间的更多相关文章
- 查看Linux服务器CPU使用率、内存使用率、磁盘空间占用率、负载情况
[root@server script]# vi monitor.py #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: nulige imp ...
- 获取系统相关信息 (CPU使用率 内存使用率 系统磁盘大小)
引言 在软件开个过程中,对于软件的稳定性和使用率也是我们需要关注的 . 使用sigar来监控,简单方便! 使用说明:下载sigar jar及配合sigar的dll文件来用,需要将dll文件放到JD ...
- Ubuntu 16.04安装indicator-sysmonitor实现导航条显示上下行网速/CPU/内存使用率
安装: sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get update sudo apt-get in ...
- 使用snmp+mrtg监控CPU、流量、磁盘空间、内存
1.安装snmp rpm -qa|grep snmp* //查看是否安装了snmpyum -y install snmp* //安装snmp #vim /etc/snmp/snmpd.confroco ...
- shell脚本监控cpu/内存使用率 转
该脚本检测cpu和内存的使用情况,只需要调整memorySetting.cpuSetting.userEmail要发邮件报警的email地址即可 如果没有配置发邮件参数的哥们,已配置了的,直接飞到代码 ...
- C#做的CPU内存使用率
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- linux 查看CPU内存 网络 流量 磁盘 IO
使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...
- Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
[本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...
- 获取Windows操作系统的CPU使用率以及内存使用率
此功能参考了ProcessHacker项目的代码. 声明定义 typedef struct _UINT64_DELTA { ULONG64 Value; ULONG64 Delta; } UINT64 ...
随机推荐
- HDR 拍照模式的原理,实现及应用
转自:http://blog.csdn.net/fulinwsuafcie/article/details/9792189 HDR 拍照: (High Dynamic Range Ima ...
- android ContentResolver详解
查询出来的cursor的初始位置是指向第一条记录的前一个位置的cursor.moveToFirst()指向查询结果的第一个位置.一般通过判断cursor.moveToFirst()的值为true或fa ...
- How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7
How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7 The problem Google developers s ...
- log4j+logback+slf4j+commons-logging的关系与调试(转)
log4j+logback+slf4j+commons-logging的关系与调试 从Log4j迁移到LogBack的理由 http://www.tuicool.com/articles/beeeYv ...
- gethostbyname 亲测可用
建立Socket链接的时候需要IP地址,但是只有域名怎么办,gethostbyname就是一个将域名转换为IP的函数: #include <netdb.h> struct hostent ...
- 传智播客C++第五期培训视频教程免费下载
C/C++的应用领域几乎无处不在,服务器,嵌入式,物联网,移动互联网,信息安全,游戏,基本上大小通吃.C/C++市场份额高达26%,也就是每四个程序员就有一个C/C++程序员.市场需求量非常大,而且工 ...
- 构建高转化率的着陆页-PS+HTML+网络营销
课程简介 本课程是全网独家专业的着陆页课程,课程完整的再现了整个着陆页实战案例的开发过程,包括:策划.设计和实现.上线后的推广.优化及提高转化率的技巧等,本套课程能帮助您迅速掌握着陆页的能力,迅速洞察 ...
- python数字图像处理(5):图像的绘制
实际上前面我们就已经用到了图像的绘制,如: io.imshow(img) 这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据.因此,我们也可 ...
- Linux第八次学习笔记
系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 输入操作是从I/O设备拷贝数据到主存. I/O→主存 输出操作是从主存拷贝数据到I/O设备. 主存→I/O Unix I/O ...
- Python Web实战 - 基于Flask实现的黄金点游戏
一.简介 团队成员: 领航者:张旭 驾驶员:张国庆 项目简介: 项目名称:基于B/S模式的黄金点游戏 采用技术: 后端:Python + Sqlite3 前端:HTML + CSS + JS + Bo ...