- Timestamp:
- May 26, 2009, 3:31:47 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MacFaceLibrary/CPUStatisticsNtQuerySystemInformation.cs
r121 r124 1 // $Id$ 1 2 using System; 2 3 using System.Diagnostics; … … 11 12 { 12 13 13 UInt64 idleTimePrev = 0;14 UInt64 kernelTimePrev = 0;15 UInt64 userTimePrev = 0;14 Int64 idleTimePrev = 0; 15 Int64 kernelTimePrev = 0; 16 Int64 userTimePrev = 0; 16 17 17 18 public CPUStatisticsNtQuerySystemInformation(int historySize) : base(historySize) … … 22 23 protected override CPUUsage NextValue() 23 24 { 24 UInt64 idleTime;25 UInt64 kernelTime;26 UInt64 userTime;25 Int64 idleTime; 26 Int64 kernelTime; 27 Int64 userTime; 27 28 28 NtKernel.SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION sysProcessorPerfInfo = NtKernel.QuerySystemProcessorPerformanceInfomation( );29 NtKernel.SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION sysProcessorPerfInfo = NtKernel.QuerySystemProcessorPerformanceInfomation(1)[0]; 29 30 30 idleTime = (UInt64)sysProcessorPerfInfo.IdleTime;31 kernelTime = (UInt64)sysProcessorPerfInfo.KernelTime;32 userTime = (UInt64)sysProcessorPerfInfo.UserTime;31 idleTime = sysProcessorPerfInfo.IdleTime; 32 kernelTime = sysProcessorPerfInfo.KernelTime - idleTime; 33 userTime = sysProcessorPerfInfo.UserTime; 33 34 34 Int 32 idleTimeDiff = (Int32)(idleTime - idleTimePrev);35 Int32 userTimeDiff = (Int32)(userTime - userTimePrev);36 Int32 kernelTimeDiff = (Int32)(kernelTime - kernelTimePrev);37 Int32 systemTimeDiff = (Int32)(userTimeDiff + kernelTimeDiff);35 Int64 idleTimeDiff = idleTime - idleTimePrev; 36 Int64 userTimeDiff = userTime - userTimePrev; 37 Int64 kernelTimeDiff = kernelTime - kernelTimePrev; 38 Int64 totalTimeDiff = idleTimeDiff + userTimeDiff + kernelTimeDiff; 38 39 39 40 idleTimePrev = idleTime; … … 42 43 43 44 return new CPUUsage( 44 (Int32)( 100 - ((Double)idleTimeDiff / userTimePrev) * 100),45 (Int32)( 100 - ((Double)idleTimeDiff / kernelTimePrev) * 100),46 (Int32)(((Double)idleTimeDiff / (systemTimeDiff)) * 100)45 (Int32)(((Double)userTimeDiff / totalTimeDiff) * 100), 46 (Int32)(((Double)kernelTimeDiff / totalTimeDiff) * 100), 47 (Int32)(((Double)idleTimeDiff / totalTimeDiff) * 100) 47 48 ); 48 49 }
Note: See TracChangeset
for help on using the changeset viewer.