From 454fb193f9ec4c7b8f054b9f8d7df4c1ff7d34d7 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 4 Sep 2024 21:50:00 -0700 Subject: [PATCH] perf(startup): improve startup time by optimizing default configuration - improve startup time by optimizing default configuration (disable network fetches for backends and updates) - add startup time measuring - use localizations for .env loader --- .env.example | 4 ++-- src/AutoGGUF.py | 13 ++++++++++--- src/Localizations.py | 6 ++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index 5b89a1f..7b85c18 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ AUTOGGUF_RESOLUTION=1650x1100 AUTOGGUF_THEME= -AUTOGGUF_CHECK_BACKEND=enabled -AUTOGGUF_CHECK_UPDATE=enabled +AUTOGGUF_CHECK_BACKEND=disabled +AUTOGGUF_CHECK_UPDATE=disabled AUTOGGUF_SERVER_API_KEY= AUTOGGUF_MODEL_DIR_NAME=models AUTOGGUF_OUTPUT_DIR_NAME=quantized_models diff --git a/src/AutoGGUF.py b/src/AutoGGUF.py index 527a5e8..afde662 100644 --- a/src/AutoGGUF.py +++ b/src/AutoGGUF.py @@ -35,6 +35,10 @@ class AutoGGUF(QMainWindow): def __init__(self, args: List[str]) -> None: super().__init__() + + init_timer = QElapsedTimer() + init_timer.start() + width, height = self.parse_resolution() self.logger = Logger("AutoGGUF", "logs") @@ -794,6 +798,7 @@ def __init__(self, args: List[str]) -> None: default_theme = f.read() self.setStyleSheet(default_theme) + # Imported models from external paths self.imported_models = [] # Load models @@ -803,11 +808,13 @@ def __init__(self, args: List[str]) -> None: self.plugins = self.load_plugins() self.apply_plugins() + # Finish initialization self.logger.info(AUTOGGUF_INITIALIZATION_COMPLETE) + self.logger.info(STARTUP_ELASPED_TIME.format(init_timer.elapsed())) def load_dotenv(self): if not os.path.isfile(".env"): - self.logger.warning(".env file not found.") + self.logger.warning(DOTENV_FILE_NOT_FOUND) return try: @@ -823,7 +830,7 @@ def load_dotenv(self): # Match key-value pairs (unquoted and quoted values) match = re.match(r"^([^=]+)=(.*)$", line) if not match: - self.logger.warning(f"Could not parse line: {line}") + self.logger.warning(COULD_NOT_PARSE_LINE.format(line)) continue key, value = match.groups() @@ -838,7 +845,7 @@ def load_dotenv(self): # Set the environment variable os.environ[key.strip()] = value.strip() except Exception as e: - self.logger.error(f"Error loading .env: {e}") + self.logger.error(ERROR_LOADING_DOTENV.format(e)) def load_plugins(self) -> Dict[str, Dict[str, Any]]: plugins = {} diff --git a/src/Localizations.py b/src/Localizations.py index 9233061..9ebdc39 100644 --- a/src/Localizations.py +++ b/src/Localizations.py @@ -24,6 +24,12 @@ def __init__(self): self.BROWSE = "Browse" self.AVAILABLE_MODELS = "Available Models:" self.REFRESH_MODELS = "Refresh Models" + self.STARTUP_ELASPED_TIME = "Initialization took {0} ms" + + # Environment variables + self.DOTENV_FILE_NOT_FOUND = ".env file not found." + self.COULD_NOT_PARSE_LINE = "Could not parse line: {0}" + self.ERROR_LOADING_DOTENV = "Error loading .env: {0}" # Model Import self.IMPORT_MODEL = "Import Model"