Add system-wide CPU usage metrics to resource display in MainWindow
This commit is contained in:
@@ -1612,6 +1612,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
|
|
||||||
# Get system info
|
# Get system info
|
||||||
system_memory = psutil.virtual_memory()
|
system_memory = psutil.virtual_memory()
|
||||||
|
system_cpu = psutil.cpu_percent(interval=0.1) # System-wide CPU usage
|
||||||
|
|
||||||
# Get GPU information with error handling (non-blocking)
|
# Get GPU information with error handling (non-blocking)
|
||||||
try:
|
try:
|
||||||
@@ -1623,7 +1624,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
return {
|
return {
|
||||||
'process_memory_mb': memory_info.rss / 1024 / 1024, # MB
|
'process_memory_mb': memory_info.rss / 1024 / 1024, # MB
|
||||||
'process_memory_percent': process.memory_percent(),
|
'process_memory_percent': process.memory_percent(),
|
||||||
'cpu_percent': cpu_percent,
|
'cpu_percent': cpu_percent, # Process CPU
|
||||||
|
'system_cpu_percent': system_cpu, # System-wide CPU
|
||||||
'system_memory_percent': system_memory.percent,
|
'system_memory_percent': system_memory.percent,
|
||||||
'system_memory_available_gb': system_memory.available / 1024 / 1024 / 1024, # GB
|
'system_memory_available_gb': system_memory.available / 1024 / 1024 / 1024, # GB
|
||||||
'template_cache_size': len(template_cache._cache) if hasattr(template_cache, '_cache') else 0,
|
'template_cache_size': len(template_cache._cache) if hasattr(template_cache, '_cache') else 0,
|
||||||
@@ -1644,6 +1646,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
'process_memory_mb': 0,
|
'process_memory_mb': 0,
|
||||||
'process_memory_percent': 0,
|
'process_memory_percent': 0,
|
||||||
'cpu_percent': 0,
|
'cpu_percent': 0,
|
||||||
|
'system_cpu_percent': 0,
|
||||||
'system_memory_percent': 0,
|
'system_memory_percent': 0,
|
||||||
'system_memory_available_gb': 0,
|
'system_memory_available_gb': 0,
|
||||||
'template_cache_size': len(template_cache._cache) if hasattr(template_cache, '_cache') else 0,
|
'template_cache_size': len(template_cache._cache) if hasattr(template_cache, '_cache') else 0,
|
||||||
@@ -1761,6 +1764,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
'memory_mb': [],
|
'memory_mb': [],
|
||||||
'memory_percent': [],
|
'memory_percent': [],
|
||||||
'cpu_percent': [],
|
'cpu_percent': [],
|
||||||
|
'system_cpu_percent': [], # System-wide CPU usage
|
||||||
'system_memory_percent': [],
|
'system_memory_percent': [],
|
||||||
'gpu_utilization': [],
|
'gpu_utilization': [],
|
||||||
'loop_times': []
|
'loop_times': []
|
||||||
@@ -1832,6 +1836,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
self._resource_history['memory_mb'].append(memory_info['process_memory_mb'])
|
self._resource_history['memory_mb'].append(memory_info['process_memory_mb'])
|
||||||
self._resource_history['memory_percent'].append(memory_info['process_memory_percent'])
|
self._resource_history['memory_percent'].append(memory_info['process_memory_percent'])
|
||||||
self._resource_history['cpu_percent'].append(memory_info['cpu_percent'])
|
self._resource_history['cpu_percent'].append(memory_info['cpu_percent'])
|
||||||
|
self._resource_history['system_cpu_percent'].append(memory_info['system_cpu_percent'])
|
||||||
self._resource_history['system_memory_percent'].append(memory_info['system_memory_percent'])
|
self._resource_history['system_memory_percent'].append(memory_info['system_memory_percent'])
|
||||||
|
|
||||||
if memory_info.get('gpu_has_gpu', False):
|
if memory_info.get('gpu_has_gpu', False):
|
||||||
@@ -1992,8 +1997,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
|
|
||||||
# System CPU usage
|
# System CPU usage
|
||||||
if memory_info.get('has_psutil', False):
|
if memory_info.get('has_psutil', False):
|
||||||
current_cpu, max_cpu, avg_cpu = self._get_resource_stats(self._resource_history['cpu_percent'])
|
current_cpu, max_cpu, avg_cpu = self._get_resource_stats(self._resource_history['system_cpu_percent'])
|
||||||
system_cpu_text = f"CPU: {current_cpu:.1f}%\nMax: {max_cpu:.1f}%"
|
system_cpu_text = f"CPU: {current_cpu:.1f}%\nAvg: {avg_cpu:.1f}% | Max: {max_cpu:.1f}%"
|
||||||
system_cpu_color = colors['error'] if current_cpu > 80 else colors['warning'] if current_cpu > 60 else colors['success']
|
system_cpu_color = colors['error'] if current_cpu > 80 else colors['warning'] if current_cpu > 60 else colors['success']
|
||||||
else:
|
else:
|
||||||
system_cpu_text = "CPU: N/A\npsutil needed"
|
system_cpu_text = "CPU: N/A\npsutil needed"
|
||||||
@@ -2005,7 +2010,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
# System RAM usage
|
# System RAM usage
|
||||||
if memory_info.get('has_psutil', False):
|
if memory_info.get('has_psutil', False):
|
||||||
current_sys, max_sys, avg_sys = self._get_resource_stats(self._resource_history['system_memory_percent'])
|
current_sys, max_sys, avg_sys = self._get_resource_stats(self._resource_history['system_memory_percent'])
|
||||||
system_ram_text = f"RAM: {current_sys:.1f}%\n({memory_info['system_memory_available_gb']:.1f}GB free)"
|
system_ram_text = f"RAM: {current_sys:.1f}% ({memory_info['system_memory_available_gb']:.1f}GB free)\nAvg: {avg_sys:.1f}% | Max: {max_sys:.1f}%"
|
||||||
system_ram_color = colors['error'] if current_sys > 85 else colors['warning'] if current_sys > 70 else colors['success']
|
system_ram_color = colors['error'] if current_sys > 85 else colors['warning'] if current_sys > 70 else colors['success']
|
||||||
else:
|
else:
|
||||||
system_ram_text = "RAM: N/A\npsutil needed"
|
system_ram_text = "RAM: N/A\npsutil needed"
|
||||||
@@ -2022,10 +2027,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
current_gpu, max_gpu, avg_gpu = self._get_resource_stats(self._resource_history['gpu_utilization'])
|
current_gpu, max_gpu, avg_gpu = self._get_resource_stats(self._resource_history['gpu_utilization'])
|
||||||
|
|
||||||
if gpu_total_mb > 0:
|
if gpu_total_mb > 0:
|
||||||
system_gpu_text = f"GPU: {current_gpu:.1f}%\n{gpu_used_mb:.0f}/{gpu_total_mb:.0f}MB"
|
system_gpu_text = f"GPU: {current_gpu:.1f}% ({gpu_used_mb:.0f}/{gpu_total_mb:.0f}MB)\nAvg: {avg_gpu:.1f}% | Max: {max_gpu:.1f}%"
|
||||||
system_gpu_color = colors['error'] if current_gpu > 80 else colors['warning'] if current_gpu > 60 else colors['success']
|
system_gpu_color = colors['error'] if current_gpu > 80 else colors['warning'] if current_gpu > 60 else colors['success']
|
||||||
else:
|
else:
|
||||||
system_gpu_text = f"GPU: {current_gpu:.1f}%\nDetected"
|
system_gpu_text = f"GPU: {current_gpu:.1f}% Detected\nAvg: {avg_gpu:.1f}% | Max: {max_gpu:.1f}%"
|
||||||
system_gpu_color = colors['info']
|
system_gpu_color = colors['info']
|
||||||
|
|
||||||
gpu_name = memory_info.get('gpu_name', 'Unknown GPU')
|
gpu_name = memory_info.get('gpu_name', 'Unknown GPU')
|
||||||
@@ -2063,7 +2068,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
current_mb, max_mb, avg_mb = self._get_resource_stats(self._resource_history['memory_mb'])
|
current_mb, max_mb, avg_mb = self._get_resource_stats(self._resource_history['memory_mb'])
|
||||||
current_pct, max_pct, avg_pct = self._get_resource_stats(self._resource_history['memory_percent'])
|
current_pct, max_pct, avg_pct = self._get_resource_stats(self._resource_history['memory_percent'])
|
||||||
|
|
||||||
program_ram_text = f"RAM: {current_mb:.1f}MB\n({current_pct:.1f}% process)"
|
program_ram_text = f"RAM: {current_mb:.1f}MB ({current_pct:.1f}%)\nAvg: {avg_mb:.1f}MB | Max: {max_mb:.1f}MB"
|
||||||
program_ram_color = colors['error'] if current_mb > 500 else colors['warning'] if current_mb > 200 else colors['success']
|
program_ram_color = colors['error'] if current_mb > 500 else colors['warning'] if current_mb > 200 else colors['success']
|
||||||
else:
|
else:
|
||||||
program_ram_text = "RAM: N/A\npsutil needed"
|
program_ram_text = "RAM: N/A\npsutil needed"
|
||||||
|
|||||||
Reference in New Issue
Block a user