Olhei para vestígios xperf de vários utilizadores e aqui a função ntoskrnl.exe!SmKmStoreHelperWorker
do Kernel começa a alocar memória.
(Clique na imagem para aumentar)
descobri isto em sysinternals .
Perguntei à Microsoft sobre isto e a resposta é que isto é por desenho. Está relacionado com a compressão da Memória do Sistema.
Em o anúncio do Windows 10 Build 10525, a Microsoft explicou-o um pouco :
& > No Windows 10, acrescentámos um novo conceito no Gestor de Memória chamado Loja de Compressão, que é uma colecção in-memory de páginas comprimidas. Isto significa que quando o Memory Manager sente a pressão da memória, irá comprimir páginas não utilizadas em vez de as escrever no disco. Isto reduz a quantidade de memória utilizada por processo, permitindo ao Windows 10 manter mais aplicações na memória física de cada vez. Isto também ajuda a proporcionar uma melhor capacidade de resposta em todo o Windows 10. A loja de compressão vive no conjunto de trabalho do processo do sistema. Desde que o processo do sistema mantém a loja na memória, o seu conjunto de trabalho aumenta exactamente quando a memória está a ser disponibilizada para outros processos. Isto é visível no Gestor de Tarefas e a razão pela qual o processo do Sistema parece estar a consumir mais memória do que as versões anteriores.
Assim, em vez de escrever dados de memória no pagefile, comprime-os. E esta memória comprimida é mostrada no processo do Sistema.
Microsoft também afixou mais detalhes no núcleo interior. Winbeta criou um artigo que inclui mais detalhes.
Aparentemente, a razão para isto teve a ver com a Microsoft ter optado por suspender aplicações UWP quando estas não estavam em primeiro plano, muito semelhante à gestão de alguns sistemas operativos smartphone. Os utilizadores do Windows 8 compreenderam (talvez não) que se as aplicações não estivessem no ecrã, não funcionariam até que o utilizador voltasse para elas. A abordagem ‘tudo ou nada’ está a ser actualizada ** com o Windows 10 introduzindo uma camada entre o pagefile e a actividade normal de paginação. Agora, quando confrontado com problemas de pressão de memória, o MM irá determinar quais as páginas que devem ser movidas para a lista modificada num processo chamado trimming.** A lista modificada é uma lista secundária de pagefiles de apoio a uma lista de pagefiles em espera. Uma lista de backup é capturada no caso da memória ser recuperada da lista de espera por outro processo, e o processo original vem à procura da sua página. Em vez de tudo ou nada, o Windows 10 MM comprimirá as páginas não utilizadas em vez de as escrever em disco. Com menos escrita, o resultado deverá ser menos operações em disco - graças à compressão - e agora mais dados podem ser armazenados na memória.
De acordo com a equipa do Windows, “ Na prática, a memória comprimida ocupa cerca de 40% do tamanho não comprimido, e como resultado de um dispositivo típico a executar uma carga de trabalho típica, o Windows 10 grava páginas em disco apenas 50% das vezes que as versões anteriores do SO. ” Se tudo correr como planeado, Os utilizadores do Windows poderão estar a experimentar tempos de espera reduzidos para todos os dispositivos, bem como tempos de vida prolongados em sistemas que tenham discos rígidos baseados em flash*.
& > A descompressão é também algo que o Windows 10 foi concebido para fazer bem. O Windows 10 está a utilizar a combinação de paralelismo e leituras sequenciais para produzir páginas na memória, uma vez chamadas. A nova descompressão deverá resultar numa experiência mais rápida, uma vez que o Windows 10 está simultaneamente a descomprimir dados e a lê-los em paralelo usando múltiplas CPUs. As versões mais antigas do Windows podem ter-se sentido lentas devido às taxas de transferência entre o disco.
Microsoft também lançou um Vídeo no canal9 que explica a característica.
Memory Compression in Windows 10 RTM https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM
Neste vídeo Mehmet Iyigun passou algum tempo a discutir porque é que o processo do sistema no Windows 10 está a ocupar um pouco mais de memória e porque é uma coisa boa. Um processo que ocupa mais memória soa como uma coisa má - isto é, até eu compreender mais sobre gestão de memória, paginação, e falhas de páginas duras / macias. Acontece que o sistema operativo está a fazer algumas optimizações inteligentes que permitem aos seus processos cortar alguma da memória mas não necessariamente paginá-la para o disco. Não só a memória é preservada na RAM, como também é comprimida - tornando as falhas de página dura uma ocorrência mais rara. Os resultados devem permitir uma experiência mais rápida.
No último TH2 Builds, a Microsoft actualizou a descrição no gestor de tarefas e agora também mostra que o processo SYSTEM hospeda o compressed memory
:
para evitar confusões sobre o uso “elevado”.
No Window 10 Anniversary Update que foi lançado em Agosto de 2016, a Microsoft extraiu a Compressão para agora mostrada num pseudo processo chamado Memory Compression
para já não confundir os utilizadores porque é que o SYSTEM tem uma utilização de memória tão grande:
Mas parece que o Taskmgr não mostra este processo, apenas o ProcessExplorer/ProcessHacker é capaz de o mostrar. A Taskmgr mostra apenas a quantidade de memória comprimida na visão geral:
Se pairar sobre o gráfico da memória usada no Taskmgr, verá uma dica de ferramenta que mostra a quantidade de dados que estão comprimidos.
Nesta demonstração 388MB são comprimidos a 122MB pelo que 267MB são guardados com a compressão.