CompactOS: compattare Windows 11 ha senso per recuperare spazio?

CompactOS comprime i file di Windows 11 per recuperare spazio: ecco quando si attiva, quanto incide sulle prestazioni e quando conviene usarlo.

Con Windows 11, ogni tanto si torna a parlare della funzionalità CompactOS. CompactOS non è una novità di Windows 11: Microsoft la introdusse nel 2015 con Windows 10 come successore di WIMBoot, tecnologia già utilizzata in Windows 8.1 per ridurre lo spazio occupato dal sistema sui dispositivi con unità di archiviazione poco capienti.

Ne abbiamo parlato più volte anche in passato, presentando CompactOS come uno strumento per recuperare alcuni gigabyte di spazio libero in caso di emergenza, ad esempio quando l’aggiornamento a una successiva versione di Windows fallisse proprio per il poco spazio a disposizione (succede sui sistemi con unità piene o comunque dalla capienza molto limitata).

Ciò che molti non dicono è che, quando ritenuto necessario, CompactOS è attivata automaticamente da Windows. Allo stesso modo, è mantenuta disabilitata allorquando non ritenuto utile.

Cos’è CompactOS e cosa comprime realmente

CompactOS è presente in Windows 10 e Windows 11 e permette al sistema operativo di utilizzare direttamente file di sistema memorizzati in forma compressa.

Windows non crea alcun archivio compresso: il sistema continua a vedere i file nelle rispettive directory e le applicazioni li utilizzano normalmente. È il sottosistema di Windows a gestire la compressione e a fornire i dati decompressi quando servono.

Microsoft descrive CompactOS come uno degli strumenti disponibili per ridurre lo storage footprint, cioè lo spazio effettivamente occupato dall’installazione di Windows. La funzione opera sui file del sistema operativo e Windows Update può successivamente sostituire o rimuovere singoli elementi senza compromettere il meccanismo di compressione.

È una differenza importante rispetto al vecchio WIMBoot, introdotto ai tempi di Windows 8.1. WIMBoot permetteva di eseguire Windows facendo riferimento a un’immagine WIM compressa e immutabile. CompactOS ha superato quel modello, consentendo una gestione molto più naturale dei singoli file del sistema.

Come verificare se CompactOS è attivo

Windows mette a disposizione il comando compact.exe, eseguibile da Terminale o Prompt dei comandi con privilegi amministrativi per conoscere lo stato corrente della funziona CompactOS:

compact /CompactOS:query

Se CompactOS è attivo, Windows segnala che il sistema si trova nello stato compatto. In caso contrario indica che i file binari di Windows non risultano compressi secondo questa modalità.

Stato CompactOS Windows

È importante leggere la “giustificazione” che Windows talvolta fornisce rispetto al suo stato. In molti casi, infatti, appare semplicemente la frase “Rimarrà in questo stato a meno che non venga modificato da un amministratore“. In certe situazioni appare qualcosa come “perché Windows ha determinato che (non) è utile per questo sistema“.

Motivazione disattivazione CompactOS Windows 11

Windows Setup dispone di una logica che gli consente di decidere se installare il sistema operativo in modalità compatta o meno. Anche gli OEM possono applicare direttamente un’immagine Windows utilizzando DISM con un’opzione apposita (vede l’ultima indicazione nel comando che segue):

DISM /Apply-Image /ImageFile:install.wim /Index:1 /ApplyDir:D:\ /compact

In alternativa, possono specificare la modalità compatta tramite il file unattend.xml utilizzato durante l’installazione automatizzata.

Ecco perché su alcuni notebook economici, tablet Windows o sistemi dotati di unità di capacità ridotta CompactOS può risultare già attivo alla prima verifica.

La prova che ci pensa Windows Setup

Se digitate i comandi che seguono, nel caso in cui comparisse la frase “perché Windows ha determinato che (non) è utile per questo sistema“, potreste legge qualcosa come “SetupManager: CompactOS Disabled/Enabled via (cached) policy detection“:

findstr /i /c:"compactos disabled" C:\Windows\Panther\setupact.log

findstr /i /c:"compactos enabled" C:\Windows\Panther\setupact.log

La documentazione Microsoft non spiega pubblicamente nel dettaglio quali parametri e soglie determinino la decisione di abilitare o non attivare CompactOS, ma i log di Windows Setup consentono almeno di verificare che la valutazione è realmente avvenuta.

Il termine “policy” non è da interpretare automaticamente come riferimento a una Group Policy configurata dall’amministratore: in questo caso indica la logica utilizzata da Setup per determinare il comportamento da adottare.

Quali criteri usa Windows per stabilire se CompactOS è utile?

Come osservato al precedente paragrafo, Microsoft conferma l’esistenza della valutazione automatica, ma non pubblica una formula con le soglie utilizzate da Windows Setup.

Non esiste, almeno nella documentazione pubblica, una tabella del tipo:

  • SSD con capacità ≤ 128 GB ⇒ CompactOS attivo
  • Unità NVMe ⇒ CompactOS disattivato
  • CPU superiore a X ⇒ CompactOS attivo
  • Spazio libero inferiore a Y ⇒ CompactOS attivo

Non è possibile affermare con certezza che Windows abiliti CompactOS quando rileva un’unità poco capiente o lenta oppure che lo disattivi automaticamente su tutti gli SSD NVMe. Microsoft documenta però il principio tecnico generale che deve essere considerato quando si valuta l’utilità della funzione: CompactOS riduce la quantità di dati da leggere dallo storage, ma richiede alla CPU di decomprimerli. È il rapporto tra questi due costi a determinare il risultato reale.

Attivazione e disattivazione manuale

Posto che Windows segue alcuni criteri per decidere, in totale autonomia, se attivare o mantenere disattivata CompactOS, i seguenti comandi permettono all’amministratore di forzare l’abilitazione o la disabilitazione della funzionalità.

L’attivazione manuale si effettua con:

compact /CompactOS:always

Per tornare alla configurazione tradizionale si può usare il comando seguente:

compact /CompactOS:never

L’attivazione può richiedere diversi minuti perché Windows deve elaborare un numero elevato di file. Anche la disattivazione comporta la decompressione dei dati precedentemente compattati e richiede naturalmente spazio libero sufficiente sull’unità.

La domanda più importante: CompactOS rallenta Windows?

Un costo computazionale derivante dall’abilitazione di CompactOS certamente esiste: affermare che CompactOS non abbia alcun impatto sulle prestazioni è qualcosa che, ovviamente, non può corrispondere al vero.

Quando Windows deve utilizzare un file compresso si verificano infatti due fenomeni opposti:

  • Dall’unità di archiviazione devono essere letti meno dati.
  • La CPU deve decomprimere quei dati prima di utilizzarli.

Il risultato dipende dal rapporto fra velocità della CPU e velocità dello storage. Microsoft lo spiega esplicitamente nella documentazione dedicata a CompactOS: la compressione riduce le operazioni di lettura e quindi il carico sul dispositivo di archiviazione, mentre la decompressione aumenta il lavoro richiesto alla CPU.

Su una macchina con processore relativamente veloce e storage lento, CompactOS può addirittura fornire prestazioni migliori in operazioni vincolate dall’I/O.

È lo stesso principio che rende la compressione vantaggiosa in numerosi altri ambiti informatici: leggere 6 MB e decomprimerli può richiedere meno tempo che leggere 10 MB senza compressione, se la CPU completa la decompressione più velocemente di quanto il dispositivo impiegherebbe a trasferire i 4 MB aggiuntivi.

Quando un file di sistema compresso può caricarsi più velocemente con CompactOS

Su un vecchio hard disk, su una memoria eMMC o su uno storage particolarmente lento, il tempo risparmiato trasferendo dall’unità di memorizzazione un numero inferiore di byte può essere superiore a quello necessario alla CPU per decomprimere i dati.

La situazione cambia con un SSD NVMe molto veloce: il trasferimento richiede già pochissimo tempo e quindi il vantaggio derivante dalla minore quantità di dati letti diminuisce. Rimane invece il costo della decompressione.

Anche in quel caso, tuttavia, non significa automaticamente che l’utente possa percepire un rallentamento. Microsoft afferma che sui dispositivi relativamente recenti non dovrebbe emergere una penalizzazione significativa.

CompactOS non usa semplicemente la normale compressione NTFS

Il comando compact.exe consente anche di comprimere normali file e directory NTFS, ma CompactOS sfrutta una modalità progettata specificamente per file eseguibili e binari letti frequentemente e modificati raramente.

L’utilità di sistema supporta diversi algoritmi: tuttavia, XPRESS4K privilegia la velocità ed è l’opzione predefinita prevista da compact.exe per gestire i file di sistema di Windows, mentre LZX punta a una compressione maggiore. Il compromesso è evidente: aumentando il rapporto di compressione si risparmia più spazio, ma può crescere il lavoro necessario per recuperare i dati.

Per i componenti del sistema operativo, Windows privilegia quindi algoritmi capaci di garantire una decompressione particolarmente rapida.

Un processore moderno può decomprimere i dati con algoritmi relativamente semplici come XPRESS a velocità molto elevate. Il costo della decompressione di pochi megabyte può quindi risultare trascurabile rispetto a molti altri lavori già svolti durante l’avvio di Windows o di un’applicazione.

Quando parte un programma, ad esempio, il sistema non deve soltanto leggere il relativo file EXE; deve caricare DLL, creare strutture in memoria, verificare permessi, risolvere dipendenze, inizializzare servizi, effettuare accessi al registro e spesso eseguire numerose altre operazioni. La decompressione dei file con CompactOS rappresenta quindi soltanto una parte del lavoro complessivo.

Inoltre Windows non rilegge necessariamente gli stessi dati dall’unità: quelli usati di frequente possono rimanere nella cache del sistema operativo, riducendo ulteriormente l’importanza dell’accesso fisico allo storage.

Quanto spazio si recupera con CompactOS

Il risparmio in termini di spazio dipende dalla versione di Windows, dall’edizione installata, dai componenti presenti e dalla comprimibilità dei file. Bisogna inoltre distinguere lo spazio occupato dai binari del sistema operativo dal peso complessivo della cartella C:\Windows, che comprende molte altre categorie di dati.

All’atto pratico, CompactOS può recuperare alcuni gigabyte, cosa utile su un PC con appena 64 o 128 GB di storage; decisamente meno importante su una workstation dotata di SSD da uno o più terabyte. Recuperare 3 GB su un’unità da 64 GB significa guadagnare quasi il 5% della capacità nominale; lo stesso risparmio su un SSD da 2 TB è praticamente irrilevante.

CompactOS, inoltre, non comprime certo tutto il disco C: perché la funzione interviene solo ed esclusivamente sui binari del sistema operativo. È quindi molto diverso dall’impostare la compressione NTFS sull’intero volume C:, scelta poco consigliabile perché coinvolge file con caratteristiche e schemi di accesso completamente differenti.

Microsoft stessa osserva che la normale compressione NTFS dei file “scrivibili” introduce un overhead superiore rispetto alle modalità attivabili con compact.exe.

Come capire se CompactOS rallenta davvero il proprio PC

Non affidatevi alle impressioni o alle “chiacchiere” di qualche guida approssimativa e sperimentate in proprio l’eventuale impatto di CompactOS.

Microsoft indica Windows Assessment Toolkit e Windows Performance Toolkit, inclusi nel pacchetto Windows ADK, come strumenti adatti a valutare l’impatto complessivo di CompactOS. Per l’I/O è possibile utilizzare anche DiskSpd (download), utilità della quale abbiamo parlato anche nel nostro articolo sulle modalità per verificare perché SSD e chiavetta USB diventano lente durante la copia dei file.

Per un test già attendibile, si possono misurare almeno tre grandezze prima e dopo l’attivazione (o prima e dopo la disabilitazione) di CompactOS:

  • tempo necessario per un avvio completo di Windows;
  • tempo di lancio di alcune applicazioni pesanti dopo un riavvio;
  • utilizzo della CPU durante le prime aperture.

Il confronto ha però senso soltanto effettuando più misurazioni e tenendo conto della cache. Il primo avvio di un’applicazione dopo un reboot può comportarsi in maniera molto diversa dai successivi.

Ti consigliamo anche

Link copiato negli appunti