zoukankan      html  css  js  c++  java
  • How to get free(available) physical memory/获取可用的内存

     How to get free physical memory/获取可用的内存

    在.Net中可以通过如下几种方式获取可用内存:

    1. 性能计数器(PerformanceCounter)
    2. 设备信息(Devices.ComputerInfo)
    3. Windows管理(WMI)

    当然也可引用windows的dll,调用winAPI来获取.相对而言,下面三种比较方便.

    Code:  

    namespace ConsoleApplication3

    {

    using System;

    using System.Diagnostics;

    using Microsoft.VisualBasic.Devices;

    using System.Management;

    public class Program

     

    {

    static void Main(string[] args)

    {

    long freeMemory = GetAvailableMemoryInByteByPerformanceCounter();

    Console.WriteLine(freeMemory.ToString());

    freeMemory = GetAvailablePhysicalMemoryInByteByDevices();

    Console.WriteLine(freeMemory.ToString());

    freeMemory = GetAvailablePhysicalMemoryInByteByWMI();

    Console.WriteLine(freeMemory.ToString());

    Console.Read();

    }

    private static long GetAvailableMemoryInByteByPerformanceCounter()

    {

    //Available Bytes, Available KBytes, Available MBytes

     

    long freeMemory = 0;

    using (PerformanceCounter pc = new PerformanceCounter("Memory", "Available Bytes"))

    {

    freeMemory = Convert.ToInt64(pc.NextValue());

    }

    return freeMemory;

    }

    public static long GetAvailablePhysicalMemoryInByteByDevices()

    {

    ComputerInfo computerInfo = new Microsoft.VisualBasic.Devices.ComputerInfo();

    return (long)computerInfo.AvailablePhysicalMemory;

    }

    public static long GetAvailablePhysicalMemoryInByteByWMI()

    {

    long freeMemory = 0;

    string query = "SELECT * FROM Win32_OperatingSystem";

    using (ManagementObjectSearcher sucher = new ManagementObjectSearcher(query))

    {

    using (ManagementObjectCollection oReturnCollection = sucher.Get())

    {

    foreach (ManagementObject m in oReturnCollection)

    {

    freeMemory = Convert.ToInt64(m["FreePhysicalMemory"].ToString());

    }

    }

    }

    return freeMemory << 10;

    }

    }

    }

     

    Result:

    1007013888
    1006624768
    1005694976

  • 相关阅读:
    10个你可能不知道的JavaScript小技巧
    JS实现rgb与16进制颜色相互转换
    JavaScript 计算两个颜色叠加值
    软件测试定义和目的(1)
    服务器查看系统日记
    SQL Server 2012 安装成功后找不到SQL server Management
    windowns 10 安装 win64_11gR2_database
    C#获得当前目录和执行目录及执行文件的路径
    卸载yaml,重新安装的坑
    IIS的卸载和安装
  • 原文地址:https://www.cnblogs.com/zzj8704/p/1718364.html
Copyright © 2011-2022 走看看