专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
网站建设
>
技术支持
> C#获得总物理内存和可用物理内存大小几个函数
C#获得总物理内存和可用物理内存大小几个函数
来源:网络整理 时间:2023/2/14 0:48:37 共
3682
浏览
说明
网上关于C#获取总物理内存大小和当前可用物理内存大小的方法有很多,但是多是从国外某网站抄过来,不仅没有测评和验证,甚至连代码排版都是乱七八糟。就C#内存操作的方法,本文对这些进行了一些测试,并从中选择了比较好的一种实现方式进行了实现和代码重写,并对实现后的源代码后进行了测试。
实现原理
基于 System.Memanement.ManagementClass 实现。这个类是对硬件信息WMI的具体封装,具体相关内容可以参见 Windows Management Instrumentation。
函数说明
long GetTotalPhysicalMemory()
用于获得当前总物理内存大小,单位是字节。如果获取失败,返回 -1。
long GetAvailablePhysicalMemory()
用于获得当前可用物理内存大小,单位是字节。如果获取失败,返回 -1。
double ToFileFormat(long filesize, [FileSizeUnit unit])
根据指定的文件大小和单位,对输入的文件大小(字节表示)进行转换。单位是可选参数,默认值为FileSizeUnit.MB。
使用方法
把函数的源代码复制至实际的项目;
在引用中添加系统自带的 System.Memanement 类库;
在函数定义的类文件顶部添加 using System.Memagement。
示例
static void Main()
{
long total = GetTotalPhysicalMemory();
long free = GetAvailablePhysicalMemory();
long used = total - free;
Console.WriteLine("Total memory: {0} bytes, {1} GB.", total, ToFileFormat(total, FileSizeUnit.GB).ToString("0.00"));
Console.WriteLine("Used memory: {0} bytes, {1} MB.", used, ToFileFormat(used).ToString("0.00"));
Console.WriteLine("Free memory: {0} bytes, {1} KB.", free, ToFileFormat(free, FileSizeUnit.KB).ToString("0.00"));
}
输出结果
Total memory: 8589934592 bytes, 8.00 GB.
Used memory: 5817077760 bytes, 5547.60 MB.
Free memory: 2772856832 bytes, 2707868.00 KB.
附:实现源代码
/// <summary>
/// 获得已使用的物理内存的大小,单位 (Byte),如果获取失败,返回 -1.
/// </summary>
/// <returns></returns>
public static long GetTotalPhysicalMemory()
{
long capacity = 0;
try
{
foreach (ManagementObject mo1 in new ManagementClass("Win32_PhysicalMemory").GetInstances())
capacity += long.Parse(mo1.Properties["Capacity"].Value.ToString());
}
catch (Exception ex)
{
capacity = -1;
Console.WriteLine(ex.Message);
}
return capacity;
}
/// <summary>
/// 获得已使用的物理内存的大小,单位 (Byte),如果获取失败,返回 -1.
/// </summary>
/// <returns></returns>
public static long GetAvailablePhysicalMemory()
{
long capacity = 0;
try
{
foreach (ManagementObject mo1 in new ManagementClass("Win32_PerfFormattedData_PerfOS_Memory").GetInstances())
capacity += long.Parse(mo1.Properties["AvailableBytes"].Value.ToString());
}
catch (Exception ex)
{
capacity = -1;
Console.WriteLine(ex.Message);
}
return capacity;
}
/// <summary>
/// 根据指定的文件大小单位,对输入的文件大小(字节表示)进行转换。
/// </summary>
/// <param name="filesize">文件文件大小,单位为字节。</param>
/// <param name="targetUnit">目标单位。</param>
/// <returns></returns>
public static double ToFileFormat(long filesize, FileSizeUnit targetUnit = FileSizeUnit.MB)
{
double size = -1;
switch (targetUnit)
{
case FileSizeUnit.KB: size = filesize / 1024.0; break;
case FileSizeUnit.MB: size = filesize / 1024.0 / 1024; break;
case FileSizeUnit.GB: size = filesize / 1024.0 / 1024 / 1024; break;
case FileSizeUnit.TB: size = filesize / 1024.0 / 1024 / 1024 / 1024; break;
case FileSizeUnit.PB: size = filesize / 1024.0 / 1024 / 1024 / 1024 / 1024; break;
default: size = filesize; break;
}
return size;
}
}
文件单位大小的枚举型。
/// <summary>
/// 文件大小单位,包括从B至PB共六个单位。
/// </summary>
public enum FileSizeUnit
{
B,
KB,
MB,
GB,
TB,
PB
}
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
珠海网站建设行业公司排行
海曙公司网站设计开发
检测网站设计公司哪家好
青岛公司注销备案查询网站
山东企业公司公示系统网站
公司汇算清缴查询网站
公司网站建设文档怎么写
公司起名在线生成网站查询
天天快递公司网站是什么
厦门公司个税申报网站
·上一条:
苹果手机safari中input的button按钮颜色显示以及默认样式问题
|
·下一条:
C#中的Process类使用
同类资讯
苹果手机safari中input的button按钮颜色显示以及默认样式问
css去掉iPhone、iPad默认按钮样式
ios input会显示有内阴影和边框【解决方法】
input在iphone下显示上边框解决方案
ios中input的背景颜色问题
解决苹果 input 移动端ios点击有黑色背景闪一下
去除iOS的Webview中input点击时的灰色背景
Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
C#操作IIS完整解析
C#列表所有IIS站点以及相关站点属性
HTML 取图片中间部分,并呈圆形
CSS实现等分布局的4种方式
用css实现正方形div
移动端 css实现自适应正圆
移动端界面设计之尺寸篇
苹果手机 input框兼容性,input 在iPhone 上 上边框有阴
清除苹果手机input的默认样式
input 在iPhone 上 上边框有阴影
在苹果手机上input有内阴影怎么去除
清除苹果手机input的默认样式,默认椭圆真的很丑
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有
粤ICP备16019765号
广州京杭网络科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com