博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#获取内存信息
阅读量:5257 次
发布时间:2019-06-14

本文共 3032 字,大约阅读时间需要 10 分钟。

1   ///   2 /// 内存  3 ///   4     public class VAV_MDDFM_MEM  5     {
6 //定义内存的信息结构 7 [StructLayout(LayoutKind.Sequential)] 8 public struct MEMORY_INFO 9 {
10 public uint dwLength; 11 public uint dwMemoryLoad; 12 public uint dwTotalPhys; 13 public uint dwAvailPhys; 14 public uint dwTotalPageFile; 15 public uint dwAvailPageFile; 16 public uint dwTotalVirtual; 17 public uint dwAvailVirtual; 18 } 19 [DllImport("kernel32")] 20 private static extern void GetWindowsDirectory(StringBuilder WinDir, int count); 21 [DllImport("kernel32")] 22 private static extern void GetSystemDirectory(StringBuilder SysDir, int count); 23 [DllImport("kernel32")] 24 private static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo); 25 26 /// 27 /// 打印内存信息 28 /// 29 public static void PrintMemInfo() 30 {
31 Console.WriteLine(GetMemInfo()); 32 } 33 34 /// 35 /// 获取内存信息 36 /// 37 ///
38 public static string GetMemInfo() 39 {
40 //调用GlobalMemoryStatus函数获取内存的相关信息 41 MEMORY_INFO MemInfo = new MEMORY_INFO(); 42 GlobalMemoryStatus(ref MemInfo); 43 44 StringBuilder sb = new StringBuilder(); 45 46 //*%的内存正在使用 47 sb.Append(MemInfo.dwMemoryLoad.ToString() + "% of the memory is being used " + "\r\n"); 48 //总共的物理内存 49 sb.Append("Physical memory total :" + Utility.ConvertBytes(MemInfo.dwTotalPhys.ToString(), 3) + "GB" + "\r\n"); 50 //可使用的物理内存 51 sb.Append("Use of physical memory :" + Utility.ConvertBytes(MemInfo.dwAvailPhys.ToString(), 3) + "GB" + "\r\n"); 52 //交换文件总大小 53 sb.Append("Total size of the swap file" + Utility.ConvertBytes(MemInfo.dwTotalPageFile.ToString(), 3) + "GB" + "\r\n"); 54 //尚可交换文件大小为 55 sb.Append(" Can still swap file size :" + Utility.ConvertBytes(MemInfo.dwAvailPageFile.ToString(), 3) + "GB" + "\r\n"); 56 //总虚拟内存 57 sb.Append("The Total virtual memory :" + Utility.ConvertBytes(MemInfo.dwTotalVirtual.ToString(), 3) + "GB" + "\r\n"); 58 //未用虚拟内存有 59 sb.Append("Unused virtual memory :" + Utility.ConvertBytes(MemInfo.dwAvailVirtual.ToString(), 3) + "GB" + "\r\n"); 60 // ConvertBytes(totMem, 3) + " GB" 61 return sb.ToString(); 62 } 63 }

 

1  public class Utility  2     {
3 public static decimal ConvertBytes(string b, int iteration) 4 {
5 long iter = 1; 6 for (int i = 0; i < iteration; i++) 7 iter *= 1024; 8 return Math.Round((Convert.ToDecimal(b)) / Convert.ToDecimal(iter), 2, MidpointRounding.AwayFromZero); 9 } 10 }

 

转载于:https://www.cnblogs.com/-ShiL/archive/2012/03/19/Star_20120319.html

你可能感兴趣的文章
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>
tju 1782. The jackpot
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>