Obejrzałem ślady xperf kilku użytkowników i tutaj funkcja ntoskrnl.exe!SmKmStoreHelperWorker
jądra zaczyna alokować pamięć.
(Kliknij obraz, aby powiększyć)
Odkryłem to na sysinternals .
Zapytałem o to Microsoft, a odpowiedź brzmi, że jest to zgodne z projektem. Jest to związane z kompresją pamięci systemowej.
W ogłoszeniu Windows 10 Build 10525 Microsoft wyjaśnił to trochę :
W Windows 10 dodaliśmy nową koncepcję w Menedżerze pamięci, zwaną sklepem kompresji, który jest kolekcją skompresowanych stron w pamięci. Oznacza to, że gdy Menedżer pamięci odczuje presję pamięci, skompresuje nieużywane strony zamiast zapisywać je na dysku. Zmniejsza to ilość pamięci używanej na proces, umożliwiając systemowi Windows 10 utrzymanie większej liczby aplikacji w pamięci fizycznej na raz. Pomaga to również zapewnić lepszą szybkość reakcji w systemie Windows 10. Magazyn kompresji znajduje się w zestawie roboczym procesu systemowego.Ponieważ proces systemowy utrzymuje pamięć w pamięci, jego zestaw roboczy powiększa się dokładnie wtedy, gdy pamięć jest udostępniana dla innych procesów. Jest to widoczne w Menedżerze zadań i dlatego proces systemowy zużywa więcej pamięci niż poprzednie wersje.
Zamiast zapisywać dane pamięci do pliku strony, kompresuje je. Ta skompresowana pamięć jest pokazywana w procesie systemowym.
Microsoft opublikował także więcej szczegółów w wewnętrznym hubie. Winbeta stworzył artykuł, który zawiera więcej szczegółów.
Najwyraźniej przyczyną takiego stanu rzeczy było to, że Microsoft zdecydował się zawiesić aplikacje UWP, gdy nie znajdowały się na pierwszym planie, bardzo podobnie do niektórych systemów operacyjnych dla smartfonów. Użytkownicy systemu Windows 8 rozumieli (być może nie), że jeśli aplikacje nie byłyby wyświetlane na ekranie, nie działałyby, dopóki użytkownik nie wróci do nich. Podejście „wszystko albo nic” jest aktualizowane w systemie Windows 10, wprowadzając warstwę między plikiem stronicowania a normalną aktywnością stronicowania. Teraz, w obliczu problemów z presją pamięci, MM określi, które strony powinny zostać przeniesione na zmodyfikowaną listę w procesie zwanym przycinaniem.Zmodyfikowana lista to dodatkowa lista plików stron tworzących kopie zapasowe plików stronicowania. Lista kopii zapasowych jest przechwytywana na wypadek, gdyby pamięć została odzyskana z listy rezerwowej przez inny proces, a proces oryginalny szuka swojej strony. Zamiast wszystkiego lub nic, Windows 10 MM kompresuje nieużywane strony zamiast zapisywać je na dysku. Przy mniejszym zapisie wynikiem powinno być mniej operacji na dysku - dzięki kompresji - a teraz więcej danych może być przechowywanych w pamięci.
Według zespołu systemu Windows: „ W praktyce skompresowana pamięć zajmuje około 40% nieskompresowanego rozmiaru, a w wyniku typowego urządzenia z typowym obciążeniem system Windows 10 zapisuje strony na dysku tylko 50% tak często, jak poprzednie wersje system operacyjny. „Jeśli wszystko pójdzie zgodnie z planem, użytkownicy systemu Windows mogą doświadczyć skrócenia czasu oczekiwania na wszystkie urządzenia, a także dłuższej żywotności w systemach z dyskami twardymi typu flash .
Dekompresja jest również czymś, co system Windows 10 ma dobrze sobie radzić. Windows 10 używa kombinacji równoległości i sekwencyjnych odczytów, aby wywołać strony do pamięci po wywołaniu. Nowa dekompresja powinna przyspieszyć działanie, ponieważ system Windows 10 jednocześnie dekompresuje dane i odczytuje je równolegle przy użyciu wielu procesorów. Starsze wersje systemu Windows mogły wydawać się powolne z powodu szybkości transferu między dyskami.
Microsoft wydał także wideo na Channel9, które wyjaśnia tę funkcję.
Kompresja pamięci w systemie Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM
W tym filmie Mehmet Iyigun poświęcił trochę czasu na omówienie, dlaczego proces systemowy w systemie Windows 10 zajmuje trochę więcej pamięci i dlaczego jest to dobra rzecz. Proces zajmujący więcej pamięci brzmi jak zła rzecz - dopóki nie zrozumiałem więcej na temat zarządzania pamięcią, stronicowania i błędów twardych / miękkich stron. Okazuje się, że system operacyjny dokonuje sprytnych optymalizacji, które pozwalają procesom przyciąć część pamięci, ale niekoniecznie przesyłają ją na dysk. Pamięć jest nie tylko zachowana w pamięci RAM, ale jest również kompresowana - dzięki czemu trudne błędy stron są rzadszym zjawiskiem. Wyniki powinny zapewnić szybsze wrażenia.
W najnowszych kompilacjach TH2 Microsoft zaktualizował opis w menedżerze zadań, a teraz pokazuje również, że proces SYSTEM obsługuje compressed memory
:
aby uniknąć nieporozumień związanych z „wysokim” użyciem.
W rocznicowej aktualizacji systemu Windows 10, która została wydana w sierpniu 2016 r., Microsoft wyodrębnił kompresję do pokazanej teraz w pseudo-procesie wywoływanym, Memory Compression
aby nie mylić użytkowników, dlaczego SYSTEM ma tak duże użycie pamięci:
Ale wygląda na to, że Taskmgr nie pokazuje tego procesu, tylko ProcessExplorer / ProcessHacker jest w stanie go pokazać. Taskmgr pokazuje tylko ilość skompresowanej pamięci w przeglądzie:
Po najechaniu wskaźnikiem myszy na wykres używanej pamięci w Taskmgr zobaczysz etykietkę pokazującą ilość skompresowanych danych.
W tym demo 388 MB zostało skompresowanych do 122 MB, więc 267 MB zostało zapisanych z kompresją.