diff --git a/README.md b/README.md index 6187960..bcf6629 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,13 @@ Passwords are stored in `secrets.yaml`. * Automatically generated on first launch. * You can modify this file *before* running `install` or `generate` if you wish to set your own passwords. + +## ⚡ Optimizations & Performance +Server Manager employs several optimizations to ensure high performance and low resource usage: +* **System Information Cache**: Dashboard updates use throttled `sysinfo` calls (`refresh_memory`, `refresh_cpu`, etc.) with a 500ms debounce to prevent high CPU utilization during frequent web requests. +* **Thread-Safe State**: Web UI state is encapsulated in `Arc`, avoiding bottlenecks when multiple users access the interface simultaneously. +* **Static Caching**: Configurations and User caches use thread-safe static globals (`OnceLock>`) to drastically reduce disk I/O. + ### 💾 Data Persistence Server Manager stores its configuration and data in the following locations: @@ -283,6 +290,13 @@ Les mots de passe sont stockés dans `secrets.yaml`. * Générés automatiquement au premier lancement. * Vous pouvez modifier ce fichier *avant* de lancer `install` ou `generate` si vous souhaitez définir vos propres mots de passe. + +## ⚡ Optimisations & Performance +Server Manager utilise plusieurs optimisations pour garantir de hautes performances et une faible utilisation des ressources : +* **Cache d'Informations Système** : Les mises à jour du tableau de bord utilisent des appels `sysinfo` (`refresh_memory`, `refresh_cpu`, etc.) limités avec un délai de 500ms pour éviter une forte utilisation du processeur lors de requêtes web fréquentes. +* **État Thread-Safe** : L'état de l'interface Web est encapsulé dans `Arc`, évitant les goulots d'étranglement lorsque plusieurs utilisateurs accèdent à l'interface simultanément. +* **Mise en Cache Statique** : Les configurations et les caches utilisateurs utilisent des variables globales statiques thread-safe (`OnceLock>`) pour réduire drastiquement les entrées/sorties disque. + ### 💾 Persistance des Données Server Manager stocke sa configuration et ses données aux emplacements suivants : diff --git a/server_manager/src/core/hardware.rs b/server_manager/src/core/hardware.rs index 09f3ff2..9acbf31 100644 --- a/server_manager/src/core/hardware.rs +++ b/server_manager/src/core/hardware.rs @@ -31,6 +31,7 @@ impl HardwareInfo { sys.refresh_memory(); sys.refresh_cpu(); sys.refresh_disks_list(); + sys.refresh_disks(); let total_memory = sys.total_memory(); // Bytes let ram_gb = total_memory / 1024 / 1024 / 1024;