获取内存信息
public static class PerformanceInfo{[DllImport("psapi.dll", SetLastError = true)][return: MarshalAs(UnmanagedType.Bool)]public static extern bool GetPerformanceInfo([Out] out PerformanceInformation PerformanceInformation, [In] int Size);[StructLayout(LayoutKind.Sequential)]public struct PerformanceInformation{public int Size;public IntPtr CommitTotal;public IntPtr CommitLimit;public IntPtr CommitPeak;public IntPtr PhysicalTotal;public IntPtr PhysicalAvailable;public IntPtr SystemCache;public IntPtr KernelTotal;public IntPtr KernelPaged;public IntPtr KernelNonPaged;public IntPtr PageSize;public int HandlesCount;public int ProcessCount;public int ThreadCount;}public static Int64 GetPhysicalAvailableMemoryInMiB(){PerformanceInformation pi = new PerformanceInformation();if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi))){return Convert.ToInt64((pi.PhysicalAvailable.ToInt64() * pi.PageSize.ToInt64() / 1048576));}else{return -1;}}public static Int64 GetTotalMemoryInMiB(){PerformanceInformation pi = new PerformanceInformation();if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi))){return Convert.ToInt64((pi.PhysicalTotal.ToInt64() * pi.PageSize.ToInt64() / 1048576));}else{return -1;}}}
获取显卡信息
using Alea;
using NvAPIWrapper.GPU;int driverVersion = Driver.Version;
var device = Device.Default;
var name = device.Name;
var number = device.Arch.Number;
var clockRate = device.Attributes.MemoryClockRate;
var gpu = PhysicalGPU.GetPhysicalGPUs()[0];
var gpuMemSize = gpu.MemoryInformation.DedicatedVideoMemoryInkB / 1024;
var cache = device.Attributes.L2CacheSize;
var coreNum = device.Cores.ToString();
var type = gpu.MemoryInformation.RAMType.ToString();
var maker = gpu.MemoryInformation.RAMMaker.ToString();
var busWidth = gpu.MemoryInformation.RAMBusWidth.ToString();