Dlaczego czasy uruchamiania w systemie Windows 8 są krótsze? [Zamknięte]

28

Kilka osób przeprowadziło testy porównawcze Windows 8 do Windows 7. Wiele funkcji nie ulega poprawie, ale konsekwentnie czas uruchamiania jest lepszy.

Dlaczego system Windows 8 uruchamia się szybciej niż system Windows 7? Czy to kwestia usług i w związku z tym, czy możemy ulepszyć system Windows 7, aby miał ten sam czas uruchamiania?

Michaił
źródło
1
odpowiedź użytkownika „Użytkownik” poniżej jest głównym powodem, ale tak, zmniejszyli usługi ładujące się z oknami z W7, co również pomaga.
Moab
1
Nie było jeszcze czasu na instalowanie aplikacji ...; P
n611x007

Odpowiedzi:

37

Z blogu Building Windows 8 :

Oto kluczowa różnica w Windows 8: tak jak w Windows 7, zamykamy sesje użytkownika, ale zamiast zamykać sesję jądra, hibernujemy ją. W porównaniu do pełnego hibernacji, która zawiera wiele stron pamięci używanych przez aplikacje, dane hibernacji sesji 0 są znacznie mniejsze, co zajmuje znacznie mniej czasu na zapis na dysk. Jeśli nie znasz się na hibernacji, skutecznie zapisujemy stan systemu i zawartość pamięci do pliku na dysku (hiberfil.sys), a następnie odczytujemy to po wznowieniu i przywracamy zawartość z powrotem do pamięci. Korzystanie z tej techniki przy rozruchu daje nam znaczną przewagę w czasie uruchamiania, ponieważ wczytywanie hiberfile i ponowne inicjowanie sterowników jest znacznie szybsze w większości systemów (30-70% szybsze w większości testowanych systemów).

Jest szybszy, ponieważ wznowienie hibernacji sesji systemowej jest stosunkowo mniej pracy niż wykonanie pełnej inicjalizacji systemu, ale jest także szybszy, ponieważ dodaliśmy nową funkcję wznawiania wielofazowego, która jest w stanie wykorzystać wszystkie rdzenie w systemie wielordzeniowym w równolegle, aby oddzielić pracę czytania od hiberfile i dekompresowania zawartości. Dla tych z was, którzy wolą hibernację, powoduje to również szybsze wznawianie hibernacji.

Prawdopodobnie warto szybko wspomnieć, jak traktujemy hiberfile - jeśli to przeczytasz i od razu wykonasz hiberfile.sys dir / s / ah, to odkryjesz, że jest to dość duży plik na dysku. Hiberfile ma domyślnie rozmiar 75% fizycznej pamięci RAM. Plik jest zasadniczo rezerwacją danych dotyczących hibernacji, które zostaną zapisane, gdy system przechodzi w stan hibernacji. Zazwyczaj faktycznie wykorzystuje się znacznie mniej miejsca, aw przypadku naszego szybkiego uruchamiania zwykle wynosi ~ 10-15% fizycznej pamięci RAM, ale różni się w zależności od sterowników, usług i innych czynników. System traktuje hiberfile nieco inaczej niż inne pliki na dysku, na przykład usługa migawek woluminów ignoruje go (niewielka zaleta w wydajności. ) Możesz wyłączyć hibernację i odzyskać to miejsce, uruchamiając powercfg / hibernację z wiersza polecenia z podwyższonym poziomem uprawnień. Ale pamiętaj, że jeśli to zrobisz, całkowicie wyłączy hibernację, w tym kilka fajnych funkcji, takich jak szybkie uruchamianie, a także hybrydowy sen, który pozwala systemom stacjonarnym wykonywać jednocześnie sen i hibernację, więc jeśli wystąpi utrata zasilania, nadal możesz wznowić ze stanu hibernacji. Możesz także uruchomić powercfg / hibernate / size i podać wartość od 0 do 100 dla procentu fizycznej pamięci RAM do zarezerwowania dla hiberfile - ale bądź ostrożny! Podanie zbyt małego rozmiaru może spowodować niepowodzenie hibernacji. Zasadniczo zalecamy pozostawienie włączonej wartości domyślnej, chyba że pracujesz w systemie z bardzo ograniczonym miejscem na dysku. całkowicie wyłączy hibernację, w tym kilka fajnych funkcji, takich jak szybkie uruchamianie, a także hybrydowy sen, który pozwala systemom stacjonarnym wykonywać jednocześnie uśpienie i hibernację, więc jeśli wystąpi utrata zasilania, nadal możesz wznowić od hibernacji. Możesz także uruchomić powercfg / hibernate / size i podać wartość od 0 do 100 dla procentu fizycznej pamięci RAM do zarezerwowania dla hiberfile - ale bądź ostrożny! Podanie zbyt małego rozmiaru może spowodować niepowodzenie hibernacji. Zasadniczo zalecam pozostawienie włączonej wartości domyślnej, chyba że pracujesz w systemie z bardzo ograniczonym miejscem na dysku. całkowicie wyłączy hibernację, w tym kilka fajnych funkcji, takich jak szybkie uruchamianie, a także hybrydowy sen, który pozwala systemom stacjonarnym wykonywać jednocześnie uśpienie i hibernację, więc jeśli wystąpi utrata zasilania, nadal możesz wznowić od hibernacji. Możesz także uruchomić powercfg / hibernate / size i podać wartość od 0 do 100 dla procentu fizycznej pamięci RAM do zarezerwowania dla hiberfile - ale bądź ostrożny! Podanie zbyt małego rozmiaru może spowodować niepowodzenie hibernacji. Zasadniczo zalecam pozostawienie włączonej wartości domyślnej, chyba że pracujesz w systemie z bardzo ograniczonym miejscem na dysku. który pozwala systemom stacjonarnym wykonywać jednocześnie tryb uśpienia i hibernacji, więc jeśli nastąpi utrata zasilania, nadal możesz wznowić pracę ze stanu hibernacji. Możesz także uruchomić powercfg / hibernate / size i podać wartość od 0 do 100 dla procentu fizycznej pamięci RAM do zarezerwowania dla hiberfile - ale bądź ostrożny! Podanie zbyt małego rozmiaru może spowodować niepowodzenie hibernacji. Zasadniczo zalecam pozostawienie włączonej wartości domyślnej, chyba że pracujesz w systemie z bardzo ograniczonym miejscem na dysku. który pozwala systemom stacjonarnym wykonywać jednocześnie tryb uśpienia i hibernacji, więc jeśli nastąpi utrata zasilania, nadal możesz wznowić pracę ze stanu hibernacji. Możesz także uruchomić powercfg / hibernate / size i podać wartość od 0 do 100 dla procentu fizycznej pamięci RAM do zarezerwowania dla hiberfile - ale bądź ostrożny! Podanie zbyt małego rozmiaru może spowodować niepowodzenie hibernacji. Zasadniczo zalecam pozostawienie włączonej wartości domyślnej, chyba że pracujesz w systemie z bardzo ograniczonym miejscem na dysku.

Elmo
źródło
Hibernacja jądra to nie wszystko. Nie wiem, co zmienili, ale nawet bez hibernacji jądra moje buty do laptopa przestają zauważalnie szybciej z Win8 niż Win7 (i mam SSD i dwurdzeniowy procesor) ... jakiś komponent musiał zostać zmodyfikowany, aby tak się dzieje, ale nie wiem co.
Mehrdad
2
Zamiast kopiować i wklejać odpowiedź, lepiej streścić artykuł, a następnie odwołać się do niego. Cytowanie artykułów jest w porządku, ale nie w dużych częściach.
James Mertz,
2
Obraz to podsumowuje.
Elmo
17

Krótka odpowiedź i moim słowem jest to, że twój komputer ma sesje, sesja 0 jest zarezerwowana dla sesji jądra lub konsoli, a sesja 1 jest zwykle sesją zalogowanych użytkowników. To, co zrobili, to skorzystanie z funkcji hibernacji, którą mieliśmy od lat w systemie Windows, która hibernuje wszystkie sesje i zmodyfikowali ją, aby hibernowała tylko sesję 0 (jądro). Wygląda to tak:

  • Kliknij zamknij
  • Komputer zamyka sesję 1 (sesję użytkownika) i zapisuje sesję 0 w pliku hiberfil.sys na dysku twardym.
  • Po uruchomieniu komputera odczytuje zawartość sesji 0 z pliku hiberfil.sys i umieszcza ją z powrotem w pamięci. Następnie inicjuje dla Ciebie nową sesję.

Aby odpowiedzieć na drugie pytanie, ponieważ jest to modyfikacja jądra, nie można tego zrobić w systemie Windows 7.

Zainteresowanie można wykonać pełne (klasyczne) zamknięcie za pomocą polecenia shutdown.exe z wiersza polecenia.

shutdown /s /t 0

Jeśli chcesz wykonać hybrydowe zamknięcie, możesz użyć:

 shutdown /s /hybrid /t 0
Taylor Gibb
źródło