2.2 KiB
2.2 KiB
MEMORY.md - Stato del Plugin UrBackup
Ultima modifica: 22/05/2026
Performance - Asset Definition vs Computer
Problema
Gli Asset Definition custom (GLPI 11) sono 2-5x più lenti dei Computer nativi nel caricamento del tab UrBackup.
Causa
L'overhead è in GLPI 11 core, non nel plugin:
Asset::__construct()— itera 30+ Capacity classi per ogni istanzaAsset::post_getFromDB()— decodifica JSON custom fields e li processaeval()autoloading — le classi concrete sono definite viaeval()a runtime
Ottimizzazioni applicate
AssetTab.php::loadApiData()— letto$item->fields['name']direttamente invece di chiamareServerAsset::getAssetName()che faceva una secondagetFromDB()ridondanteAssetTab.php::startBackup(),saveInternetMode(),saveDefaultDirs(),showServerLinkedBlock()— stesso pattern,$item->fields['name']al posto digetAssetName()Server.php::showMissingClientsTab()— batch loading IP e gruppi:batchLoadIps()(1 query per itemtype vs 1 per riga) +batchLoadGroups()(1 query per itemtype vs 1 per riga)
Architettura
src/Capacity/UrBackupCapacity.php— registraAssetTabviaCommonGLPI::registerStandardTab()inonClassBootstrap()setup.php— registra capacità, CSS, JS, hooksrc/AssetTab.php— display tab content + tab interni (Stato/Azioni/Info-Log)src/ServerAsset.php— gestione collegamenti asset-serversrc/Config.php— itemtype enabled checksrc/UrbackupApiClient.php— client API con caching in-memory (per istanza) e sessionesrc/LocationHelper.php— risoluzione location radicesrc/Server.php— CRUD server, tab missing clients, form
Asset Tab Interni
- 3 sub-tab: Stato, Azioni (solo UPDATE/CREATE), Info/Log
- CSS: tab con tonalità di grigio differenti (scuro/medio/chiaro)
- Caricamento dati API con caching sessione 30s
- Dati caricati: status, settings, authkey, backup recenti (10), log (50)
Cache
UrbackupApiClient: cache in-memory pergetStatus()egetClientSettings()AssetTab::loadApiData(): cache sessione 30s (chiave: server_id + client_name)- API timeout: 30s, connect timeout: 5s
Versione
- 0.6.0