Artemis.Modules.Effects.WindowsProfile.PerformanceInfo.GetPhysicalAvailableMemoryInMiB C# (CSharp) Method

GetPhysicalAvailableMemoryInMiB() public static method

public static GetPhysicalAvailableMemoryInMiB ( ) : long
return long
        public static long GetPhysicalAvailableMemoryInMiB()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
                return Convert.ToInt64(pi.PhysicalAvailable.ToInt64()*pi.PageSize.ToInt64()/1048576);
            return -1;
        }

Usage Example

示例#1
0
        private void UpdateCpu(WindowsProfileDataModel dataModel)
        {
            if (_cores == null || _overallCpu == null)
            {
                return;
            }

            // CPU is only updated every 15 frames, the performance counter gives 0 if updated too often
            _cpuFrames++;
            if (_cpuFrames < 16)
            {
                return;
            }

            _cpuFrames = 0;

            // Update cores, not ideal but data models don't support lists.
            if (_cores[0] != null)
            {
                dataModel.Cpu.Core1Usage = (int)_cores[0].NextValue();
            }
            if (_cores[1] != null)
            {
                dataModel.Cpu.Core2Usage = (int)_cores[1].NextValue();
            }
            if (_cores[2] != null)
            {
                dataModel.Cpu.Core3Usage = (int)_cores[2].NextValue();
            }
            if (_cores[3] != null)
            {
                dataModel.Cpu.Core4Usage = (int)_cores[3].NextValue();
            }
            if (_cores[4] != null)
            {
                dataModel.Cpu.Core5Usage = (int)_cores[4].NextValue();
            }
            if (_cores[5] != null)
            {
                dataModel.Cpu.Core6Usage = (int)_cores[5].NextValue();
            }
            if (_cores[6] != null)
            {
                dataModel.Cpu.Core7Usage = (int)_cores[6].NextValue();
            }
            if (_cores[7] != null)
            {
                dataModel.Cpu.Core8Usage = (int)_cores[7].NextValue();
            }

            //From Ted - Let's get overall RAM and CPU usage here
            dataModel.Cpu.TotalUsage = (int)_overallCpu.NextValue();

            var phav            = PerformanceInfo.GetPhysicalAvailableMemoryInMiB();
            var tot             = PerformanceInfo.GetTotalMemoryInMiB();
            var percentFree     = phav / (decimal)tot * 100;
            var percentOccupied = 100 - percentFree;

            dataModel.Performance.RAMUsage = (int)percentOccupied;
        }