Czy wymagania Windows 10 rosną? Microsoft twierdzi, że nie, ale...
Wymagania sprzętowe systemu Windows 10, poza detalami opisanymi w przypisach drobnym drukiem, nie zmieniły się od czasu wydania oryginalnej wersji z lipca 2015. Siedem wersji później dalej jesteśmy (rzekomo) w stanie zainstalować ów system na gigahercowym procesorze i dwóch gigabajtach pamięci. Ponadto, wymagania te są zbieżne z zapotrzebowaniem raportowanym przez poprzedników: Windows 8 i 8.1 oraz… poczciwą „Siódemkę”. Najwyraźniej po drastycznym skoku w apetycie na zasoby, który miał miejsce w 2006 roku, Windows zaczął zadowalać się mniej potężnymi komputerami, nie zmuszając do wielkich zakupów co dwa lata.
Czy na pewno jest to takie proste? Każdy, kto instalował system Windows 8 w miejsce Siódemki zauważał, że system ten jest mniej żwawy, niż poprzednik. Być może startował szybciej, ale potrzebował znacznie więcej czasu, żeby się „rozpędzić”, mielił dyskiem twardym nierzadko jeszcze kilka minut po wyświetleniu ekranu logowania. Co więcej, spadek wydajności może być dostrzeżony nawet w porównaniu między oryginalnym Windows 7 (7600.16385.090713-1255) a najnowszą, w pełni zaktualizowaną wersją. Niniejsza różnica jest źródłem nieskończonych teorii spiskowych autorstwa ludzi, który po prostu zawsze wiedzą lepiej…
Identyczne wymagania sprzętowe oznaczają zatem, że system poradzi sobie ze zbliżoną wydajnością, co poprzednik – o ile nie będzie się musiał brzydko bawić sam ze sobą. Co takiego dzieje się więc pod maską nowych Windowsów, co sprawia, że radzą sobie coraz gorzej na tym samym sprzęcie? Noty wydawnicze są zawsze pełne ogólników, a pokaźne zbiory nowych funkcji same z siebie nie obciążają przecież komputera. Nie pracują wszakże cały czas. Aby odpowiedzieć na to pytanie, musimy samodzielnie zanurkować nieco głębiej, acz unikniemy popadnięcia w nadmierną szczegółowość. Zaczniemy od zbadania tezy stanowiącej, że niższa żwawość nowych systemów wynika z większej liczby operacji I/O wykonywanych w tle, w celu utrzymania infrastruktury (a więc bez dostarczenia bezpośredniej, obserwowalnej korzyści).
Tabletowy interfejs
Nowe Windowsy startują szybciej, niż Siódemka, ale są gotowe do płynnej pracy dopiero po upływie dłuższego czasu. Wynika to z dwóch poważnych zmian, wprowadzonych wraz z Windows 8. Po pierwsze, system Windows nie ulega już dziś procesowi wyłączenia: dokonuje on zamiast tego częściowej hibernacji i podczas uruchomienia po prostu przywraca do pamięci zapisany stan z dysku, niemal w całości. Oznacza to, że de facto nowe systemy startują z taką samą prędkością, co poprzednik, acz fakt ten jest ukryty przed użytkownikiem. Powód, dla którego nawet ekran logowania wydaje się „przycinać”, a sam system przechodzi w bezczynność dopiero później, niż kiedyś, jest z kolei zupełnie inny i w zasadzie nieco żenujący.
Jedną z małych, acz przyjemnych atrakcji wizualnych Windows 8 i następców jest dostosowany ekran logowania. W systemie można zmienić nie tylko swoją tapetę pulpitu, ale i tapetę ekranu blokady (a więc i logowania). Owe rozwiązanie działa poprawnie również w przypadku konfiguracji wieloużytkownikowych: system zaserwuje tapetę ekranu blokady ustawioną wedle preferencji ostatniego zalogowanego użytkownika i zmieni ją, jeżeli wybierzemy innego. Administratorzy systemu mogą tutaj słusznie zastanawiać się „jak zwykły użytkownik może zmienić tapetę ekranu logowania skoro to jest polityka (Group Policy) komputera, a nie użytkownika?”. Powód wbrew pozorom nie tkwi w popsutej implementacji Kontroli Konta Użytkownika, a w tym, że system po prostu… ładuje profil ostatniego zalogowanego użytkownika lokalnego, w praktyce przeprowadzając częściowe logowanie „pod spodem”. Opiera się to na założeniu, że dzisiejsze komputery są ściśle osobiste i szansa, że do systemu zaloguje się ten sam użytkownik, co poprzednio jest bardzo wysoka. Dlatego pod ekranem logowania następuje wirtualne „wpisanie hasła” i załadowanie profilu. Uruchamiają się aplikacje obszaru zasobnika systemowego i auto-uruchamiania, w systemie pojawiają się procesu należące do użytkownika, broker aplikacji Sklepu rozpoczyna synchronizację swoich kafelków.
Stan ten jest unieważniany, jeżeli do systemu zaloguje się ktoś inny. Ale rzeczywiste zjawisko, w postaci zamarkowanego logowania jednak następuje i czasem kryje się w nieudolny sposób. A to jakieś zbłąkane powiadomienie „wybrzmi” dźwiękiem, mimo że nikt się nie zalogował. A to sam ekran logowania napisze „Zapraszamy!” i mignie pulpitem, by potem w pośpiechu przykryć go blokadą i tak dalej.
Powyższe rozwiązanie zastosowano z myślą o tym, że aplikacje Metro naprawdę okażą się sukcesem i ładowanie aplikacji z wyprzedzeniem będzie nieszkodliwe. W świetle dzisiejszego prędkiego wycofywania się z koncepcji „Ósemki” jest to nieco zabawna pozostałość, która ma zalety głównie dla aplikacji UWP i tajemniczych usług UtcSvc, uruchamianych jak instancje per-użytkownik. Już nawet OneDrive z tego nie korzysta. Jednak dzięki całej tej rewelacji, proces startu systemu na wolniejszym dysku wydaje się nie mieć końca, a „błyskawicznie” dostępny pulpit wcale nie jest w ten sposób bardziej osiągalny. Są jednak gorsze problemy, niż to.
Host usług Sklepu
Trochę historii. Gdy na rynku zaczęły się pojawiać pierwsze laptopy z Vistą, przeładowane niepotrzebnymi już wspomagaczami od producentów (wiele funkcji umiał już bowiem realizować sam system), użytkownicy dość głośno wyrażali swoją dezaprobatę, na zawsze rujnującą opinię na temat owego systemu. Obciążenie laptopów zbiorem kiepsko napisanych sterowników i zbędnych akcesoriów znacząco wydłużało czas startu i zmniejszało responsywność systemu. Programy te były jednak, zgodnie z przyzwyczajeniami z Windows XP, uznawane za „niezbędne” i winy szukano po stronie samego Windowsa. Najczęściej oskarżenia padały pod adresem dwóch nowych funkcji: przebudowanego Windows Update oraz nowej usługi wyszukiwania: Windows Search. Internet został zalany zbiorem porad, jak wyłączyć nieszczęsne procesy TrustedInstaller.exe oraz SearchIndexer.exe. Mimo, że nowy stos serwisowania i usługa indeksująca były niewątpliwymi zaletami i funkcjami znacznie ulepszającymi Vistę w porównaniu z poprzednikiem, generowały one bardzo duży ruch I/O, odczuwalny szczególnie boleśnie na laptopowych dyskach o prędkości 5400 obrotów, montowanych w i tak już budżetowych konstrukcjach.
Tak się bowiem szokująco składa, że trudno jest doceniać zalety jakiegoś rozwiązania, jeżeli powszechnie generuje ono więcej szkody, niż pożytku. Zjawisko to trwa dalej. Windows 8 zadebiutował infrastrukturą Sklepu, system Windows 10 rozszerzył jego możliwości o instalację klasycznych, nie-kafelkowych aplikacji. Sklepowe programy instalowane są w sposób drastycznie odmienny, niż wszystkie poprzednie, wliczając w to pakiety MSI. Każda Sklepowa aplikacja jest zamknięta w tzw. piaskownicy, nie ma dostępu do wszystkich plików na dysku i nie może komunikować się z urządzeniami. Całość programu ląduje w specjalnie przeznaczonym katalogu i żaden jego plik nie znajduje się nigdzie indziej; podobnie sprawa ma się z Rejestrem – dostępne są wyłącznie niektóre pod-gałęzie. Mechanizm ten, poza niewątpliwym zwiększeniem zabezpieczeń, pozwala na łatwe serwisowanie, czyli np. deinstalację i instalację aktualizacji opartej na deltę. Ułatwia też migrację danych i zachowanie spójnego stanu między urządzeniami.
To niezwykle wygodne i przezroczyste rozwiązanie jest gwarantowane przez Host Usług Sklepu, czyli program wsappx.exe. Aplikacja ta uruchamia się okresowo i przeprowadza migrację i aktualizacje aplikacji instalowanych przez Sklep. Aby wszystkie wyżej wymienione zalety były dostępne, potrzebny jest spory zbiór czynności wykonywanych w ukryciu przed użytkownikiem. Wypadkowy zbiór operacji jest złożony i wymagający obliczeniowo. Wymusza też wykonywanie naprawdę zaskakująco wysokiej liczby operacji dyskowych, co na talerzowych dyskach potrafi doprowadzić system do przedłużających się przestojów w pracy. Na komputerach z dwurdzeniowym procesorem, po dłuższym nieużywaniu sprzętu, łatwo możemy mieć pecha, w którym jeden rdzeń dławi się Hostem Usług Sklepu, a drugi dzielnie walczy z indeksowaniem pochodzącym z Visty… Całość potrafi zapchać kolejkę dostępu do dysku tak bardzo, że na wszystko trzeba czekać horrendalnie długo. Przeglądarka internetowa (nawet Edge), jeżeli nawet uruchomi się w rozsądnym czasie, będzie mieć kłopot z wydajną pracą, zgłaszając w rogu komunikat „Oczekiwanie na pamięć podręczną”.
Windows Defender
Windows Vista dorzucił do owego koszyka jeszcze jeden wynalazek intensywnie wykonujący operacje I/O. Jest nim silnik Microsoft Malware Protection Engine (MsMpEng.exe), czyli Windows Defender. Przez wiele lat był to jedynie pomocniczy program chroniący przed niektórymi szkodnikami szpiegowskimi. Wraz z Windows 8 rozszerzono go o definicje antywirusowe i zwiększono priorytet pracy. Nowy Defender umie więcej i pracuje lepiej, ale zwiększona dociekliwość jego silnika generuje znacznie większy ruch (więcej odczytów) i nawet przy adaptacyjnym priorytecie mocniej obciąża procesor, ze względu na konieczność wykonywania porównań z większą liczbą wzorców. Windows 10 rozszerzył Defendera o jeszcze więcej funkcji mocno nadwyrężających sprzęt, co pogłębiło problem. Antywirus Windows Defender radzi sobie naprawdę nieźle jako zabezpieczenie, ale bardzo mocno przysłużył się do odczuwalnego spowolnienia pracy świeżego systemu w porównaniu z uwielbianym Windows 7.
Nowe Windowsy dodały również bardzo dużo nowych zadań wykonywanych periodycznie. Większość z nich ładuje się bardzo szybko i działa dość krótko. Jeżeli jest ich jednak np. trzysta, to sumując je wszystkie może się okazać, że okresowo tracimy istotny ułamek potencjalnej wydajności systemu. Można udać się na polowanie i wyłączyć większość z nich, tracąc przy okazji (zdumiewająco mały!) pewien fragment funkcjonalności, ale z naszej perspektywy najlepiej skupić się na tych, które są szczególnie odpowiedzialne za obciążanie systemu i w największym stopniu pracują na opinię o ociężałości „Dziesiątki”.
Compatibility Telemetry Runner
Głównym winowajcą będzie tu narzędzie inwentaryzacji Microsoft Compatibility Telemetry, poszukujące zainstalowanego oprogramowania i najczęstszych problemów z nim. Poza wydarzeniami typu APPCRASH, obniżającymi wykres „Niezawodności” systemu, program **CompatTelRunner.exe wyszukuje inne problemy, których zna definicje. Na ich podstawie przygotowywane są poprawki oraz protezy („shims”) zwiększające przyszłą kompatybilność systemu z aplikacjami, które zaczęły szwankować wraz z którąś z aktualizacji. Niestety, CompatTelRunner inwentaryzuje znacznie, znacznie więcej. Nie jest to główny komponent telemetryczny Windows 10 (czyli DiagTrack**) i to nie on np. wysyła wszystkie nasze wyszukiwania z menu Start (i w ogóle sporą część wszystkiego, co wpisujemy w systemowe pola) do Microsoftu. Jest on jednak odpowiedzialny za bardzo szczegółową inwentaryzację i wysyła informacje o responsywności aplikacji, problemach z wyświetlaniem, wersje sterowników i sporą część naszych logów. Tego typu inwentaryzacja zajmuje sporo czasu i wymusza intensywne „jeżdżenie” po dysku.
Warto tutaj nadmienić parę pobocznych kwestii. Po pierwsze, powyższy mechanizm istotnie jest jednym z głównych źródeł deklaracji „na Siódemce mój laptop chodził szybko, a teraz ciągle coś robi i muli!”. Ale zbliżony mechanizm inwentarza został dodany aktualizacjami również do systemu Windows 7, nie wszędzie jednak zainstalował się automatycznie. Po drugie, to dobra okazja do wyjaśnienia dlaczego „telemetria” z Windows 10 to takie dziwne, obce cudo jakże niepasujące do poprzednich wersji Okienek. Czyżby kiedyś były czasy, a teraz nie ma czasów (i są tylko przestrzenie)? Telemetria uchodzi za reptiliański spisek i drastyczną zmianę względem Windows 7, ciało obce dorzucone na siłę do systemu przez jakieś wrogie siły. Wynika to z faktu, że telemetrii w Windows 10 nie stworzył zespół programistów Windows. Narzędzie „Compatibility Telemetry Runner” to wynalazek zespołu od narzędzia System Center Confiugration Manager (SCCM), służącego do masowych wdrożeń, administracji i badań rozległych sieci złożonych z setek stacji roboczych. Microsoft opracował nawet artykuł tłumaczący jak wygenerować inwentarz telemetryczny samodzielnie, na własny użytek. To tyle, jeśli chodzi o teorie spiskowe.
OneDrive
Ostatnim godnym przeanalizowania komponentem „zamulającym” komputery z Dziesiątką jest chmurowy dysk OneDrive. Narzędzie to ma za sobą bardzo długą historię i wiele lat trwało, zanim przyjęło ono formę „chmurki” siedzącej cicho w zasobniku systemowym. Przez pewien czas było ono nawet prawdziwą aplikacją UWP, ale Microsoft już od dawna sam wycofuje się z robienia takich aplikacji, zamiast tego dostarczając klasyczne programy Win32. Jednym z nich jest właśnie OneDrive. Aplikacja ta w dzisiejszej postaci jest tak drastycznie oddzielna od reszty systemu, że posiada nawet własny aktualizator. W zasadzie zachowuje się ona tak samo, jak osobno i ręcznie zainstalowany DropBox – do tego stopnia nie pasuje do reszty obrazka. Fakt, że da się nią zarządzać przez Zasady Grupy należy uznawać za cud.
Drugim „cudem” w wykonaniu OneDrive jest to, że nie tylko jest on klasyczną, a nie Sklepową aplikacją – jej klient jest w dodatku wieloplatformowy i stworzony z wykorzystaniem jakiejś ciężkiej przenośnej biblioteki, by dało się go uruchomić na systemie macOS. Dzięki swojej wszechstronności OneDrive obfituje w szereg skutków ubocznych. Jego interfejs potrzebuje pięciu sekund na wyświetlenie się na komputerze z procesorem Skylake. A jego klient jest tak rozbudowany, że aktualizuje się co kilka dni i trwa to niemożliwie długo. Aktualizacja OneDrive, naturalnie niemająca nic wspólnego ze Sklepem, tłucze dysk twardy przez dobrych kilka minut, po tym jak przez około minutę rozpakowuje swój silnie skompresowany instalator. Następuje ona bardzo często i po dłuższym nieużywaniu komputera z Windows 10 jest w zasadzie gwarantowana. W połączeniu ze wszystkimi wyżej wymienionymi narzędziami OneDrive, zwłaszcza na jedynie okazjonalnie używanym lub starszym sprzęcie, wystawia cierpliwość na ciężką próbę, przylepia Dziesiątce etykietkę ociężałej baryły i wzmaga silną tęsknotę za Windows 7, w którym wszystko działało jakoś lżej.
Infrastruktura powiadomień
W Windows 10 (oraz w Ósemce) znajdują się również mniej oczywiste i znacznie gorzej udokumentowane „usprawnienia” które zwiększają ciężkość i koszt pracy systemu. Jednym z nich jest na przykład mechanizm powiadomień nowej generacji (Windows Notification Facility), rozpięty nad sesją użytkownika, ale również nad mechanizmami wewnątrz systemu (kernel mode). WNF i jego usługi stanowią praktyczną realizację obietnic systemu powiadomień z Longhorna, mimo że pierwsze efekty jego pracy, w postaci tostowych powiadomień aplikacji WinRT, były dość marne. Okazuje się jednak, że nowy podsystem jest gigantyczny i pracuje przez cały czas, zupełnie omijając dotychczasowe, przeznaczone do tego celu kanały potoków nazwanych oraz mechanizmu DCOM. Można go w skrócie określić jako mądra i nieudokumentowana kolejka komunikatów (MQ). WNF powstał zapewne jako mechanizm niskopoziomowej komunikacji międzyprocesowej, niedotykający antycznych i niebezpiecznych podsystemów oryginalnej bazy Windows. Przy okazji stanowi realizację nowego mechanizmu powiadomień dla kafelkowych aplikacji. Lista rodzajów zdarzeń obsługiwanych przez WNF jest ładnie zgromadzona na blogu Redplait. Chlubne zamierzenia nie są niestety realizowane za darmo…
Podsumowanie
Powodów rosnącej ciężkości Okienek jest naturalnie o wiele więcej. Sam system przecież przytył i to nawet obliczając bity poświęcone na nowe podsystemy i spakowane z instalatorem aplikacje UWP. Zwykłe, klasyczne komponenty systemu są większe same z siebie. Ponadto, nowe wersje Windows 10 zawierają kolejne wersje zabezpieczeń przeciwko nadużyciom wykonywania spekulatywnego, co upośledza Hyper-Threading i w pewnym stopniu również wpływa na wydajność.
Wiele powodów jest też w ogóle niezwiązanych z samą Dziesiątką. Nowe laptopy częściej zawierają nowe wersje Office. Pakiet biurowy Office 365 (czyli rozwijana w nieskończoność wersja 16.0) zawiera instalator typu Click-To-Run i jego praca, wykorzystująca Sklepo-podobne zalety typu konteneryzacja i przezroczyste serwisowanie, jest znacznie cięższa, niż klasyczne aktualizacje Windows Update. Tymczasem Office 2007, często obecny na sprzęcie z Windows 7, w ogóle nie otrzymuje dziś żadnych aktualizacji. Nie zapominajmy również o zewnętrznych aplikacjach: narzędzia ChromeSetup.exe lub aktualizatory Electronowych zabawek, jak Discord, Skype i temu podobne…
Optymalizacja wydajności pracy Windows to historia bez końca. Ze względu na znaczące „utuczenie” Windows 10, porady dotyczące przyspieszenia systemu stają się coraz bardziej obszerne. Trudno wyczerpać temat, a nierzadko trudno ustrzec się przed nadmiernym okrojeniem funkcji lub uszkodzeniem systemu. Czy optymalizujecie swoje systemy? A może chcecie dowiedzieć się więcej o optymalizacji Windows? Dajcie nam znać w komentarzach!