Questo post é stato letto 90 volte!
Il consumo RAM delle applicazioni su Windows 11 è spesso un argomento di discussione, con programmi che possono occupare oltre 1 GB di memoria, anche se apparentemente semplici. Questa situazione non è dovuta solo alle funzionalità offerte, ma è profondamente influenzata dall'architettura software, dai componenti caricati in memoria e dal modo in cui il programma gestisce processi e risorse. Un esempio significativo è Discord, che sta riprogettando il suo client desktop per ridurre drasticamente l'impronta di memoria, mirando a passare da oltre 1 GB a circa 290 MB in una versione sperimentale.
Architetture software e il consumo RAM
Le diverse architetture software influenzano notevolmente il consumo RAM. Electron, ad esempio, permette di sviluppare applicazioni desktop usando HTML, CSS e JavaScript, integrando Chromium e Node.js. Questo approccio facilita la portabilità del codice tra diversi sistemi operativi, ma comporta un elevato costo in termini di risorse, poiché ogni applicazione include una copia completa del browser.
Tauri, invece, adotta un approccio differente, impiegando Rust per la logica applicativa e sfruttando il motore web già presente nel sistema operativo, come Microsoft Edge WebView2 su Windows. Questa soluzione riduce le dimensioni del pacchetto software, pur mantenendo il consumo di memoria legato al motore web. WinUI 3 è il framework di Microsoft per la creazione di applicazioni native per Windows, che non necessita di un browser per visualizzare i controlli, ma può dipendere da runtime e librerie aggiuntive. Anche le tradizionali applicazioni Win32, sviluppate in C o C++, possono essere molto efficienti.
Tuttavia, la sola natività non garantisce leggerezza, poiché fattori come cache, framework e algoritmi inefficienti possono incidere più della tecnologia scelta.
Come identificare la tecnologia di un programma
Windows non fornisce direttamente informazioni sulla tecnologia utilizzata da un programma, ma è possibile ricavare degli indizi. Utilizzando Process Explorer, si può esaminare il percorso dell'eseguibile e cercare file caratteristici. Le applicazioni Electron spesso contengono una directory "resources" con un archivio "app.asar" e librerie Chromium come "chrome_elf.dll". Per le applicazioni Tauri, si possono cercare processi "msedgewebview2.exe" associati, sebbene questo componente sia utilizzato anche da molti altri software.
Le applicazioni WinUI 3 possono essere riconosciute dalla presenza della libreria "Microsoft.UI.Xaml.dll" nel pannello DLLs di Process Explorer.
Misurare il consumo RAM con gli strumenti di Windows
Il Task Manager di Windows (CTRL+MAIUSC+ESC) mostra l'utilizzo della memoria per ogni applicazione, ma è fondamentale distinguere tra Working Set, Private Bytes e Shareable Bytes. Il Working Set indica la memoria fisica attualmente in uso, Private Bytes è la memoria privata non condivisibile, e Shareable Bytes è la memoria che può essere condivisa con altri processi. La semplice somma dei Working Set di processi diversi può portare a un conteggio doppio se questi condividono pagine di memoria.
Per un'analisi più dettagliata, PowerShell può essere utilizzato per identificare i processi con il Working Set più elevato. Ad esempio, il comando `Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 15 Name, @{Name='WS(MB)';Expression={[math]::Round($_.WS / 1MB, 2)}}, @{Name='PM(MB)';Expression={[math]::Round($_.PM / 1MB, 2)}}` elenca i 15 processi con il maggiore consumo RAM.
Analisi avanzata con Process Explorer e RAMMap
Per un'analisi più precisa, Process Explorer di Microsoft Sysinternals è uno strumento utile che permette di esaminare la struttura dei processi e distinguere la memoria privata da quella condivisibile. Abilitando le colonne "Working Set Bytes", "WS Private Bytes", "WS Shareable Bytes" e "Private Bytes", è possibile monitorare l'andamento del consumo di memoria. Una crescita continua di "Private Bytes" può suggerire un problema, ma non è sempre indice di una perdita di memoria.
RAMMap, un'altra utility Sysinternals, offre una visione dettagliata di come Windows distribuisce la memoria fisica tra applicazioni, cache e driver. La scheda "Use Counts" distingue la memoria "Active" (attualmente in uso) dalla memoria "Standby" (conservata come cache ma recuperabile), mentre la scheda "Processes" mostra la composizione dei Working Set, aiutando a comprendere se la RAM apparentemente occupata rappresenta una reale pressione sul sistema o è utilizzata per accelerare le operazioni.
Per confrontare due applicazioni e capire il loro consumo RAM, è consigliabile eseguire test pratici sullo stesso PC, in condizioni simili, riavviando i programmi e registrando le misurazioni di Working Set, Private Bytes e il numero di processi almeno tre volte.
Questo post é stato letto 90 volte!