La maggioranza delle applicazioni disponibili per uso comune, probabilmente, non se ne preoccupa ma, in particolare per le applicazioni che fanno uso intensivo di video e audio, piuttosto che per applicazioni che rendono disponibili contenuti 3D, ci deve essere un focus particolare al consumo di memoria. Come sappiamo, infatti, non è il garbage collector a salvarci la vita, così come sappiamo che non ci serve per forza di cose utilizzare linguaggi di più basso livello come C++ per imparare a gestire meglio la memoria che è, per ovvie ragioni, limitata.
Sebbene il carico necessario dipenda principalmente dalle applicazioni stesse e dai loro contenuti, possiamo comunque prendere decisioni basate sulla quantità di memoria disponibile per abilitare, o limitare, una determinata logica di business. La quantità di memoria attualmente utilizzata, così come la quantità di memoria massima ancora disponibile sono esposte tramite la classe statica MemoryManager:
var currentUsage = MemoryManager.AppMemoryUsage; var maxMemory = MemoryManager.ExpectedAppMemoryUsageLimit;
Il consumo di memoria può anche essere classificato, per semplicità, secondo diverse categorie (Low, Medium, High e OverLimit) qualora non volessimo (o ci servisse) fare i calcoli per convertire da byte ad una unità di misura differente:
var usageLevel = MemoryManager.AppMemoryUsageLevel
Se si dovesse, invece, aver bisogno di informazioni più dettagliate relative al consumo di memoria per un preciso istante temporale o un determinato processo, si può fare riferimento ai metodi GetAppMemoryReport e GetProcessMemoryReport. Un uso improvviso elevato della memoria può essere invece rilevato tramite l'evento AppMemoryUsageLimitChanging.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare WhenEach per processare i risultati di una lista di task
Collegare applicazioni server e client con .NET Aspire
Managed deployment strategy in Azure DevOps
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Recuperare le subissue e il loro stato di completamento in GitHub
Testare il failover sulle region in Azure Storage
Fornire parametri ad un Web component HTML
Integrare SQL Server in un progetto .NET Aspire
Controllare la velocità di spostamento su una pagina HTML
Pubblicare un MCP Server in GitHub MCP Registry
Utilizzare l nesting nativo dei CSS
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Inserire le news di Punto Informatico nel proprio sito
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0


