Po pierwsze, ilość pamięci RAM, którą należy zapisać, jest zaskakująco mała. W rzeczywistości tylko zestaw zmapowanych brudnych stron („leniwe zapisywanie”) musi zostać wyczyszczony, a także wszystkie prywatne strony, które zostały zapisane i przeniesiono kod wykonywalny.
- Segmenty .text plików wykonywalnych są zawsze wspierane przez mapowanie plików. Dotyczy to również przynajmniej niektórych bibliotek DLL (ale nie wszystkich, zależy od tego, czy należy je przenieść).
- Pamięć podobnie wspierana przez odwzorowania plików może zostać odrzucona (zakładając, że nie jest to CoW ani RW i jest brudna).
- Leniwe zapisywanie nadal będzie musiało wystąpić, ale poza tym pamięci podręczne można odrzucić.
- Pamięć, która została przydzielona, ale do której nie została zapisana (zwykle większa część danych aplikacji!), Jest zabezpieczona zerową stroną i może zostać odrzucona.
- Większa część stron pamięci, które są w stanie „gotowości” (faktyczny zestaw roboczy rezydenta na proces w systemie Windows jest zadziwiająco mały, zaledwie 16 MB) zostanie w pewnym momencie skopiowana do pliku strony w tle i może zostać odrzucona .
- Regiony pamięci, które są mapowane przez niektóre urządzenia, takie jak karta graficzna, mogą (nie) wymagać zapisania. Użytkownicy są czasem zaskoczeni, że podłączają 8GiB lub 16GiB do komputera, a 1GiB lub 2GiB po prostu „zniknęły” bez wyraźnego powodu. Główne interfejsy API grafiki wymagają, aby aplikacje były w stanie unieważnić zawartość bufora „pod pewnymi warunkami” (bez dokładnego wyjaśnienia, co to oznacza). Dlatego nie jest nierozsądne oczekiwać, że pamięć przypięta przez sterownik karty graficznej również zostanie po prostu odrzucona. W końcu ekran i tak się ściemni.
Po drugie, w przeciwieństwie do kopiowania pliku, zrzut zestawu stron pamięci RAM, które należy zapisać na dysku, jest pojedynczym sekwencyjnym, ciągłym zapisem z punktu widzenia napędu. Win32 API nawet udostępnia funkcję poziomu użytkownika dla tej samej operacji. Zebranie zapisu jest bezpośrednio obsługiwane przez sprzęt i działa tak szybko, jak dysk jest fizycznie w stanie przyjąć dane (kontroler bezpośrednio pobierze dane przez DMA).
Jest wiele warunków wstępnych, aby to działało (takie jak wyrównanie, rozmiar bloku, przypinanie), i nie działa dobrze z buforowaniem i nie ma czegoś takiego jak „leniwy zapis zwrotny” (który jest bardzo pożądaną optymalizacją podczas normalnej pracy ).
To jest powód, dla którego nie każdy piszetak działa cały czas. Jednak gdy system zapisuje plik hibernacji, wszystkie warunki wstępne są spełnione automatycznie (wszystkie dane są wyrównane, mają rozmiar strony i są przypięte), a buforowanie stało się nieistotne, ponieważ komputer zostanie za chwilę wyłączony.
Po trzecie, wykonanie pojedynczego zapisu ciągłego jest bardzo korzystne zarówno dla dysków wirujących, jak i dysków półprzewodnikowych.
Plik wymiany i plik hibernacji są zwykle jednymi z najwcześniejszych plików utworzonych i zarezerwowanych na dysku. Zwykle mają jeden, najwyżej dwa fragmenty. Tak więc, chyba że sektory zostaną uszkodzone, a dysk nie będzie musiał ponownie przypisać sektorów fizycznych, logiczny zapis sekwencyjny przekłada się na fizyczny zapis sekwencyjny na wirującym dysku.
Żadne operacje odczytu-modyfikacji-zapisu nie są konieczne na dysku, gdy zapisywana jest ogromna ilość ciągłych, ciągłych danych. Ten problem jest mniej wyraźny na wirujących dyskach twardych, które mogą zapisywać pojedyncze sektory, które są dość małe (pod warunkiem, że nie zapisujesz pojedynczych bajtów, co zwykle zapobiega buforowaniu, urządzenie nie musi pobierać oryginalnej zawartości i zapisywać zmodyfikowanej wersji). .
Jest to jednak coś, co jest bardzo zauważalne na dysku SSD, gdzie każdy zapis oznacza, że np. Blok 512 kB (który jest zwykłą liczbą, ale może być większy) musi zostać odczytany i zmodyfikowany przez kontroler i zapisany z powrotem do innego blok. Chociaż możesz w zasadzie pisać do (ale nie nadpisywać)) mniejsze jednostki na dyskach flash, zawsze możesz usunąć tylko ogromne bloki, tak działa sprzęt. To jest powód, dla którego dyski SSD radzą sobie o wiele lepiej w przypadku dużych zapisów sekwencyjnych.