| """ | |
| Memory usage monitoring utilities. | |
| """ | |
| import os | |
| import logging | |
| import psutil | |
| from typing import Dict | |
| # Configure logging | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| ) | |
| logger = logging.getLogger(__name__) | |
| def get_memory_usage() -> Dict[str, float]: | |
| """ | |
| Get current memory usage statistics. | |
| Returns: | |
| Dictionary with RAM usage in GB and percentage | |
| """ | |
| # Get system memory info | |
| process = psutil.Process(os.getpid()) | |
| memory_info = process.memory_info() | |
| ram_usage = memory_info.rss / 1024**3 # Convert to GB | |
| return { | |
| "ram_gb": ram_usage, | |
| "gpu_gb": 0, # No GPU usage tracking without torch | |
| "ram_percent": ram_usage / 16 * 100, # Based on 16GB available | |
| } | |
| def log_memory_usage(): | |
| """Log current memory usage.""" | |
| memory_info = get_memory_usage() | |
| logger.info(f"Memory usage: {memory_info['ram_gb']:.2f} GB ({memory_info['ram_percent']:.1f}%)") | |
| return memory_info | |