Files
VisionFlowAutomator/RESOURCE_MONITORING.md
T
Gabriel20xx abb21792d6 Add real-time resource monitoring and UI enhancements
- Implemented a new resource usage display in the main UI, showing memory, CPU, and system metrics.
- Added toggle functionality to hide/show resource information.
- Enhanced performance monitoring with real-time updates every 2 seconds.
- Included error handling and fallback modes for when psutil is not installed.
- Updated requirements.txt to include psutil for enhanced monitoring capabilities.
2025-07-31 13:45:00 +02:00

5.4 KiB

Resource Usage Monitoring - VisionFlow Automator

Overview

The VisionFlow Automator now includes real-time resource usage monitoring displayed directly in the UI. This feature helps users monitor the application's performance and system impact.

Features Added

🔍 Resource Usage Display

A new "Resource Usage" group box has been added to the main UI showing:

Memory Usage

  • Process Memory: Shows the application's memory usage in MB and percentage of system memory
  • Color-coded warnings: Green for normal usage, red for high usage (>10% of system memory)

CPU Usage

  • Process CPU: Shows the application's CPU usage percentage
  • Color-coded warnings: Green for normal usage, red for high usage (>50%)

System Information

  • System Memory: Shows overall system memory usage percentage and available memory in GB
  • Color-coded warnings: Green for normal, red when system memory usage exceeds 85%

Cache Information

  • Template Cache: Number of cached CV2 templates
  • Cooldown Entries: Number of active step cooldowns
  • Color-coded status: Blue for normal, orange when template cache exceeds 20 entries

Performance Metrics

  • Loop Time: Average automation loop execution time in milliseconds
  • Color-coded performance: Green for fast loops (<500ms), red for slow loops (>500ms)

🎛️ Controls

Toggle Button

  • Hide/Show Resources: Button to toggle the visibility of resource usage information
  • Space-saving: Users can hide the resource display if they don't need it
  • Tooltip: Provides information about psutil installation for enhanced monitoring

Interactive Elements

  • Clickable Labels: When psutil is not installed, clicking on resource labels shows installation instructions
  • Installation Guide: Built-in dialog explaining how to install psutil for enhanced monitoring

📊 Monitoring Levels

Basic Monitoring (Without psutil)

When psutil is not installed, the display shows:

  • Template cache size
  • Cooldown entries count
  • Basic performance metrics
  • "N/A" for system metrics with installation instructions

Enhanced Monitoring (With psutil)

When psutil is installed (pip install psutil), the display shows:

  • Detailed process memory usage
  • CPU usage percentage
  • System memory statistics
  • Available system memory
  • Process performance metrics

⚙️ Technical Details

Update Frequency

  • Real-time Updates: Resource display updates every 2 seconds
  • Responsive UI: Non-blocking updates that don't interfere with automation
  • Performance Optimized: Minimal overhead from monitoring

Color Coding System

  • 🟢 Green: Normal/Good performance
  • 🟡 Orange/Yellow: Warning levels
  • 🔴 Red: High usage/Performance issues
  • Gray: Unavailable/Error states

Error Handling

  • Graceful Degradation: Shows basic info if detailed monitoring fails
  • Error Display: Shows error messages for troubleshooting
  • Fallback Information: Always shows cache and performance data

🎯 Benefits

For Users

  • Real-time Monitoring: See exactly how much resources the app is using
  • Performance Insights: Identify when the app is running slowly
  • System Impact: Understand the app's impact on overall system performance
  • Troubleshooting: Quickly identify memory leaks or performance issues

For Developers

  • Performance Metrics: Built-in performance profiling
  • Memory Leak Detection: Monitor memory usage over time
  • Cache Optimization: Track template cache efficiency
  • System Resources: Monitor system-wide impact

📋 Usage Instructions

Basic Usage

  1. View Resources: Resource usage is displayed by default in the main window
  2. Toggle Display: Click "Hide Resources" to save screen space
  3. Monitor Performance: Watch for color changes indicating performance issues

Enhanced Monitoring Setup

  1. Install psutil: Run pip install psutil in your Python environment
  2. Restart Application: Close and reopen VisionFlow Automator
  3. Enhanced Display: All metrics will now show detailed system information

Interpreting Metrics

  • Memory < 100MB: Normal usage for typical scenarios
  • CPU < 20%: Normal usage during automation
  • Loop Time < 200ms: Good performance
  • Cache < 20 entries: Normal template usage

🚨 Warning Thresholds

Memory Warnings

  • Process Memory > 10%: High memory usage warning
  • System Memory > 85%: System memory critical

Performance Warnings

  • CPU > 50%: High CPU usage
  • Loop Time > 500ms: Performance degradation
  • Cache > 20 entries: Large template cache

🔧 Troubleshooting

High Memory Usage

  • Check for memory leaks in long-running sessions
  • Clear template cache periodically
  • Reduce number of simultaneous image templates

High CPU Usage

  • Reduce automation frequency
  • Optimize image template sizes
  • Check for infinite loops in scenarios

Slow Performance

  • Monitor loop times for bottlenecks
  • Reduce screenshot frequency
  • Optimize template matching regions

Missing psutil

  • Install with: pip install psutil
  • Click on gray resource labels for installation instructions
  • Restart application after installation

The resource monitoring feature provides valuable insights into the application's performance and helps users optimize their automation scenarios for better efficiency.