From 149cc59b78e3960d0d03d9c3ff686131621ebe98 Mon Sep 17 00:00:00 2001 From: Niko Ehrenfeuchter <nikolaus.ehrenfeuchter@unibas.ch> Date: Sun, 11 Mar 2018 14:34:36 +0100 Subject: [PATCH] Homogenize code with ATxCommon. --- ATxDiagnostics/ATxDiagnostics.cs | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/ATxDiagnostics/ATxDiagnostics.cs b/ATxDiagnostics/ATxDiagnostics.cs index 0d10ae8..a03d5af 100644 --- a/ATxDiagnostics/ATxDiagnostics.cs +++ b/ATxDiagnostics/ATxDiagnostics.cs @@ -30,25 +30,31 @@ namespace ATxDiagnostics Log.Debug(SystemChecks.GetCpuUsage()); Log.Debug(SystemChecks.GetCpuUsage()); Log.Debug(SystemChecks.GetCpuUsage()); - Log.Debug(SystemChecks.GetCpuUsage()); */ + Log.Debug(SystemChecks.GetCpuUsage()); Log.Debug(QueryCpuLoad()); } private static int QueryCpuLoad() { Log.Trace("Querying WMI for CPU load..."); - var searcher = new ManagementObjectSearcher( - "root\\CIMV2", - "select Name, PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor", - new EnumerationOptions { - Timeout = new TimeSpan(0, 0, 10), - ReturnImmediately = false, - } - ); + var watch = Stopwatch.StartNew(); + var queryString = "SELECT Name, PercentProcessorTime " + + "FROM Win32_PerfFormattedData_PerfOS_Processor"; + var opts = new EnumerationOptions { + Timeout = new TimeSpan(0, 0, 10), + ReturnImmediately = false, + }; + var searcher = new ManagementObjectSearcher("", queryString, opts); Int32 usageInt32 = -1; var managementObjects = searcher.Get(); + if (managementObjects.Count == 0) { + Log.Error("No objects returned from WMI!"); + watch.Stop(); + Log.Debug("WMI query took {0} ms.", watch.ElapsedMilliseconds); + return -1; + } Log.Trace("WMI query returned {0} objects.", managementObjects.Count); foreach (var mo in managementObjects) { var obj = (ManagementObject)mo; @@ -58,16 +64,14 @@ namespace ATxDiagnostics usageInt32 = Convert.ToInt32(usage); Log.Trace("CPU usage {1}: {0}", usageInt32, name); - //if (name.ToString().Equals("_Total")) { - // usageInt32 = Convert.ToInt32(usage); - // Log.Trace("CPU usage: {0}", usageInt32); - //} - } managementObjects.Dispose(); searcher.Dispose(); + watch.Stop(); + Log.Debug("WMI query took {0} ms.", watch.ElapsedMilliseconds); + return usageInt32; } } -- GitLab