Ho guardato le tracce xperf di diversi utenti e qui la funzione ntoskrnl.exe!SmKmStoreHelperWorker
del Kernel inizia ad allocare la memoria.
(Clicca sull'immagine per ingrandirla)
Ho scoperto questo su sysinternals .
Ho chiesto a Microsoft e la risposta è che questo è stato progettato. È legato alla compressione della memoria di sistema.
In l'annuncio di Windows 10 Build 10525, Microsoft lo ha spiegato un po’ :
In Windows 10, abbiamo aggiunto un nuovo concetto nel Memory Manager chiamato negozio di compressione, che è una collezione in-memoria di pagine compresse. Questo significa che quando Memory Manager sente la pressione della memoria, comprime le pagine inutilizzate invece di scriverle sul disco. Questo riduce la quantità di memoria usata per processo, permettendo a Windows 10 di mantenere più applicazioni nella memoria fisica alla volta. Questo aiuta anche a fornire una migliore reattività in tutto Windows 10. L'archivio di compressione vive nel set di lavoro del processo di sistema. **Poiché il processo di sistema tiene il negozio in memoria, il suo set di lavoro cresce esattamente quando la memoria viene resa disponibile per altri processi. Questo è visibile in Task Manager e la ragione per cui il processo System sembra consumare più memoria rispetto alle versioni precedenti.
Così invece di scrivere i dati di memoria nel pagefile li comprime. E questa memoria compressa viene mostrata nel processo System.
Microsoft ha anche pubblicato maggiori dettagli nell'hub interno. Winbeta ha creato un articolo che include più dettagli.
A quanto pare, la ragione di ciò ha avuto a che fare con la scelta di Microsoft di sospendere le app UWP quando non erano in primo piano, molto simile ad alcune gestioni del sistema operativo degli smartphone. Gli utenti di Windows 8 hanno capito (forse no) che se le app non erano sullo schermo, non sarebbero state eseguite fino a quando l'utente non fosse passato di nuovo ad esse. L'approccio ‘tutto o niente’ viene aggiornato con Windows 10 che introduce uno strato tra il pagefile e la normale attività di paginazione. Ora, di fronte a problemi di pressione della memoria, MM determinerà quali pagine dovrebbero essere spostate nell'elenco modificato in un processo chiamato trimming. L'elenco modificato è un elenco secondario di pagefile che fa da backup ad un elenco di pagefile di riserva. Una lista di backup viene catturata nel caso in cui la memoria venga recuperata dalla lista di riserva da un altro processo, e il processo originale venga a cercare la sua pagina. Invece di tutto o niente, Windows 10 MM comprime le pagine inutilizzate piuttosto che scriverle sul disco. Con meno scrittura, il risultato dovrebbe essere un minor numero di operazioni su disco - grazie alla compressione - e ora più dati possono essere conservati in memoria.
Secondo il team di Windows, “ In pratica, la memoria compressa occupa circa il 40% della dimensione non compressa, e come risultato di un dispositivo tipico che esegue un carico di lavoro tipico, Windows 10 scrive le pagine su disco solo il 50% più spesso delle versioni precedenti del sistema operativo. ” Se tutto va secondo i piani, gli utenti di Windows potrebbero sperimentare tempi di attesa ridotti per tutti i dispositivi così come una maggiore durata di vita sui sistemi che hanno dischi rigidi basati su flash.
La decompressione è anche qualcosa che Windows 10 è progettato per fare bene. Windows 10 sta usando la combinazione di parallelizzabilità e letture sequenziali per produrre pagine in memoria una volta chiamate. La nuova decompressione dovrebbe risultare in un'esperienza più veloce in quanto Windows 10 sta decomprimendo simultaneamente i dati e li legge in parallelo utilizzando più CPU. Le vecchie versioni di Windows potrebbero essere state lente a causa della velocità di trasferimento tra i dischi.
Microsoft ha anche rilasciato un video sul canale9 che spiega la caratteristica.
Compressione della memoria in Windows 10 RTM https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM
In questo video Mehmet Iyigun ha passato un po’ di tempo a discutere perché il processo di sistema in Windows 10 sta prendendo un po’ più di memoria e perché è una cosa buona. Un processo che prende più memoria sembra una brutta cosa - questo fino a quando non ho capito di più sulla gestione della memoria, la paginazione e gli errori di pagina hard / soft. Si è scoperto che il sistema operativo sta facendo alcune ottimizzazioni intelligenti che permettono ai processi di tagliare un po’ di memoria ma non necessariamente di paginarla su disco. Non solo la memoria è conservata nella RAM, ma è anche compressa - rendendo gli hard page fault un evento più raro. Il risultato dovrebbe essere un'esperienza più veloce.
Nelle ultime build di TH2, Microsoft ha aggiornato la descrizione nel task manager e ora mostra anche che il processo SYSTEM ospita lo compressed memory
:
per evitare confusioni sull'uso “elevato”.
Nel Window 10 Anniversary Update che è stato rilasciato nell'agosto 2016, Microsoft ha estratto la compressione in ora mostrato in uno pseudo processo chiamato Memory Compression
per non confondere più gli utenti sul perché SYSTEM ha un utilizzo di memoria così grande:
Ma sembra che Taskmgr non mostri questo processo, solo ProcessExplorer/ProcessHacker sono in grado di mostrarlo. Il Taskmgr mostra solo la quantità di memoria compressa nella panoramica:
Se passi il mouse sul grafico della memoria usata in Taskmgr vedi un tooltip che mostra la quantità di dati che sono compressi.
In questa demo 388MB sono compressi a 122MB quindi 267MB sono salvati con la compressione.