Nei vari UI framework basati su XAML ci siamo abituati ad avere a disposizione nativamente alcuni strumenti per controllare il consumo di risorse, in tempo reale, che la nostra applicazione chiede al sistema.
Analogamente a Silverlight
https://www.silverlightitalia.com/articoli/silverlight/migliorare-prestazioni-silverlight.aspx
e Windows Phone Runtime
https://www.winphoneitalia.com/articoli/windows-phone-7/performance-windows-phone-7-p-2.aspx
anche in WinRT abbiamo la proprietá EnableFrameRateCounter esposta dalla classe statica DebugSettings.
DebugSettings.EnableFrameRateCounter = true;
Come gli altri framework questa proprietá renderizza a video una serie di counter:
- Cp fps: frames per secondo per composition thread
- UI fps: frames per secondo per UI thread
- Memory: memoria utilizzata per le textures
- Batch: numero di aree inviate alla GPU
- Cp cpu: tempo, in millisecondi, speso dai composition thread
- UI cpu: tempo, in millisecondi, speso dagli UI thread
Il momento corretto in cui valorizzare questa proprietá é l'override di OnLaunched, l'importante é disattivarne la visualizzazione quando non siamo in debug, ad esempio:
App.Current.DebugSettings.EnableFrameRateCounter = System.Diagnostics.Debugger.IsAttached;
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Nav menu
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Proteggere le risorse Azure con private link e private endpoints
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Gestire i dati con Azure Cosmos DB Data Explorer
Utilizzare Container Queries nominali
Usare una container image come runner di GitHub Actions
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Creazione di componenti personalizzati in React.js con Tailwind CSS
Assegnare un valore di default a un parametro di una lambda in C#
Usare lo spread operator con i collection initializer in C#