• 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

  • 相关阅读:
    php 将网页执行的输出写入到本地文件中
    网络爬虫技术
    解决:解压zip文件却变成cpgz文件
    SHA1算法实现及详解
    Mac配置PHP开发环境
    项目管理
    Oracle Primavera P6 R84单机版安装教程
    工时
    项目管理软件伙伴https://www.huobanyun.cn/
    Primavera 6.0
  • 原文地址:https://www.cnblogs.com/zzj8704/p/1718364.html
Copyright © 2020-2023  润新知