void ReleaseDesignerOutlets() { if (GPUBox != null) { GPUBox.Dispose(); GPUBox = null; } if (InfoLabel != null) { InfoLabel.Dispose(); InfoLabel = null; } if (GPUGridView != null) { GPUGridView.Dispose(); GPUGridView = null; } }
public void Init(GPUTimesJson gpu, int gpuNum) { GPUBox.Title = "GPU #" + gpuNum + "(" + gpu.gpu_name + ")"; for (int i = 0; i < DVMHStatMetricCount; ++i) { var metric = gpu.metrics[i]; if (metric.countMeasures <= 0) { continue; } bool isSize = i >= (int)DVMHStatMetrics.DVMH_STAT_METRIC_CPY_DTOH && i <= (int)DVMHStatMetrics.DVMH_STAT_METRIC_CPY_GET_ACTUAL || i == (int)DVMHStatMetrics.DVMH_STAT_METRIC_UTIL_ARRAY_TRANSFORMATION; bool isPositive = isSize; GPUGridView.AddRow(new NSView[] { MakeLabel(dvmhStatMetricsTitles[i]), MakeLabel(metric.countMeasures.ToString()), MakeLabel(PrepareValue(metric.min, isPositive, isSize, false, false)), MakeLabel(PrepareValue(metric.max, isPositive, isSize, false, false)), MakeLabel(PrepareValue(metric.sum, isPositive, isSize, false, false)), MakeLabel(PrepareValue(metric.mean, isPositive, isSize, false, false)), MakeLabel(PrepareValue(metric.timeProductive, true, false, true, true)), MakeLabel(PrepareValue(metric.timeLost, true, false, true, true)) }); } GPUGridView.AddRow(new NSView[] { MakeLabel(" ") }); GPUGridView.AddRow(new NSView[] { MakeLabel("Productive time " + PrepareValue(gpu.prod_time, true, false, true, true)) }); GPUGridView.AddRow(new NSView[] { MakeLabel("Lost time " + PrepareValue(gpu.lost_time, true, false, true, true)) }); GPUGridView.NeedsUpdateConstraints = true; }