Perché i computer sono lenti a tornare in letargo?


22

L'ibernazione dovrebbe scrivere i contenuti della RAM su disco e il ritorno dall'ibernazione dovrebbe riempire la RAM con i contenuti salvati. Perché il ritorno dall'ibernazione è lento, ad esempio il sistema in genere non risponde da un po 'di tempo?


1
Dovresti provare un computer che utilizza un'unità a stato solido (SSD), come un MacBook Pro. È quasi istantaneo, il più delle volte.
Stewart,

1
acquisire un ibernazione / riprendere la traccia con xbootmgr e analizzare ciò che è lento: msfn.org/board/index.php?showtopic=140247
magicandre1981

Uso l'ibernazione sul mio laptop da lavoro, ma per accelerarlo chiudo prima tutte le mie app (usando una piccola utility chiamata closeall ntwind.com/software/utilities/close-all.html )
Morgan T.

Risposte:


19

La causa principale è l'I / O del disco. Leggere e scrivere su un disco fisico è molto più lento che dalla RAM. Quando il computer riprende dal disco (ibernazione), deve anche accendere i componenti che potrebbero causare rallentamenti. Questo dipende fortemente dal computer. Un SSD avrà quasi la stessa velocità di ripristino dal disco della RAM. Alcuni computer consentono di spostare il mouse prima che il ram sia stato riempito di nuovo completamente, causando tempi di risposta bassi.

Nota: supponiamo di avere 8 GB di RAM e un SSD con una velocità di trasmissione di 400 MB / s. Ci vorranno ancora 8 * 1024 MB / 400 MB / s = 20,48 secondi. Questa non è la stessa velocità di ripresa dalla RAM.

Supponendo un throughput di RAM di 15.000 MB / s, il tempo di ripresa è di 0,55 secondi.


5
Reading and writing to a physical disk is much slower than from RAM. Sì, ma leggere è più veloce della scrittura, quindi perché impiegare così tanto tempo a leggere l'HDD che a scriverlo?
Synetech,

1
@Synetech è? Se stai semplicemente programmando che l'ibernazione colpisca l'opzione per il blanking dello schermo (al contrario dell'arresto dell'attività dell'unità) il sistema operativo probabilmente lo sta cancellando in anticipo quindi sembra che non si sia bloccato. Se si sta misurando lo spegnimento tramite IO-Time, ci sono alcune possibilità. Con un SDD verificherei se il file di paging è frammentato perché gli SSD sono più veloci nelle scritture casuali rispetto alle letture casuali. Altrimenti speculerei che la proibizione è più lenta a causa di ritardi nel riavvio di alcuni componenti hardware che sono stati spenti non a causa delle prestazioni di I / O.
Dan Neely,

@DanNeely, in realtà so cosa intendi. Sono stato spesso infastidito dal fatto che quando faccio clic su Ibernazione, lo schermo si spegne rapidamente, ma l'unità stessa si rompe ancora per un po 'di tempo (spesso un minuto o due in più). Questo è davvero fastidioso perché non puoi semplicemente prendere un laptop e metterlo nella borsa poiché l'unità sta ancora girando e spostandolo aumenterebbe le possibilità di un incidente (l'attesa è migliore per l'arresto rapido). Tuttavia, so anche cosa sta dicendo enthrops; a volte un curriculum richiede molto tempo (bene Windows riprende abbastanza rapidamente, ma il LED dell'HDD rimane acceso per molto tempo).
Synetech,

@Synetech l'ennesimo motivo per desiderare che gli SSD fossero abbastanza economici da essere universali.
Dan Neely,

3

Mentre la RAM è molto veloce, il disco rigido è esattamente l'opposto. Immagina di dover copiare i contenuti della RAM, che potrebbero essere circa 16 GB, dal disco rigido. Sono 4 DVD. Vedere?


3

È un compromesso. Ritiriamo tutto ciò che era nella RAM prima del letargo dal disco nella RAM tutto in una volta, o solo un po 'alla volta, se necessario?

Sappiamo tutti che la lettura di un settore da un disco rotante richiede praticamente lo stesso tempo impiegato per scrivere quel settore sullo stesso disco rotante: il tempo di ricerca + rotazione. Quindi potremmo aspettarci che la scrittura di informazioni dalla RAM sul disco (in ibernazione) richiederebbe circa lo stesso tempo della lettura della stessa RAM dal disco (riprendere dall'ibernazione). Ma non succede in questo modo, a causa del paging della domanda.

Se il sistema operativo inserisse tutto in una volta, quindi riprendere dal letargo richiederebbe decine di secondi, ma in seguito si comporterebbe come se non fossi mai stato in letargo.

I programmatori del sistema operativo in genere scelgono invece il paging della domanda . In altre parole, il sistema operativo estrae solo un po 'alla volta dal disco, se necessario. Ciò ha il vantaggio che riprendere dall'ibernazione richiede molto meno tempo prima che inizi a rispondere alla tastiera e ai mouse. D'altra parte, quando usi qualcosa per la prima volta dopo l'ibernazione, c'è un piccolo ma evidente ritardo quando il sistema operativo finalmente riesce a caricarlo. Ciò accade anche quando "la prima volta" che usi qualcosa potrebbe essere diversi minuti dopo il letargo. Quindi, dopo aver ripreso da un letargo (ovvero, dopo aver visto uno schermo che sembra essere più o meno identico allo schermo appena prima del letargo), lavorare con la macchina può sembrare lento per un po '.

Come ha sottolineato Synetech, c'è anche un po 'di psicologia umana coinvolta: poiché lo schermo si spegne subito all'inizio del letargo, sembra che si spenga rapidamente. E l'utente può continuare immediatamente con qualsiasi altra cosa tu voglia fare. Ma dopo un riassunto dal letargo, l'utente sta cercando di fare qualcosa e i piccoli ritardi sono fastidiosi perché ostacolano ciò che l'utente sta cercando di fare.


2

So cosa vuoi dire. Sembra davvero che il LED dell'HDD lampeggi a lungo dopo essere ripreso dal letargo.

Sono state fornite alcune spiegazioni ragionevoli sui ritardi dovuti all'avvio dell'hardware (e all'accelerazione del driver?) E alla frammentazione (noterete che un sistema appena uscito dalla fabbrica generalmente andrà in letargo e riprenderà abbastanza rapidamente mentre quello che è stato usato per un po 'di tempo lo farà essere molto più lento a farlo). Ci sono un paio di spiegazioni in più per questo comportamento.

Durante l'ibernazione, Windows scarica la RAM nell'unità. Nonostante le alte velocità per leggere la RAM e scrivere su disco (anche con un file di ibernazione deframmentato su un disco grande e vuoto), ci vuole ancora un po 'di tempo per scrivere diversi gigabyte (noterai che il letargo e il ripristino di un sistema con piccole quantità di RAM è decisamente veloce). Lo schermo si spegne rapidamente, ma l'unità (e la scheda madre, i fan, ecc.) Rimangono tutti in esecuzione per un po 'fino a quando non finisce di scaricare la RAM sul disco. (Assicurati di non gettare un laptop con un HDD fino a quando non ha terminato e spento completamente l'unità).

È possibile eseguire alcuni test sperimentali per misurare il tempo impiegato dal clic su Sospensione fino allo spegnimento del sistema e il tempo necessario dal momento in cui viene visualizzata la schermata Riprendi Windows fino a quando il LED HDD smette di lampeggiare. Probabilmente saranno approssimativamente uguali. (Windows tenta di far sembrare che riprenda dall'ibernazione molto velocemente scrivendo e quindi leggendo prima il kernel e le cose nel file di ibernazione, in modo che possa tornare immediatamente in esecuzione e poi continuare a caricare nel resto nel in background e, se necessario, fino a quando non è stato ripristinato tutto, è possibile vedere questo comportamento in azione perché la schermata di accesso viene mostrata molto rapidamente.)

Perché allora sembra che riprendere impieghi più tempo. Ci sono due spiegazioni per questo.

  1. E 'psicologico . Come ha sottolineato Dan, poiché lo schermo si spegne subito quando si è in letargo, sembra che si spenga rapidamente, mentre si vede l'intero processo di ripresa (schermo di apertura e LED HDD lampeggianti).

  2. È il paging. Poiché la maggior parte delle persone usa l'ibernazione invece dell'arresto perché vogliono evitare di uscire dai programmi e in modo tale che possano riprendere da dove avevano interrotto, significa che quando Windows riprende, ci sono un sacco di programmi già in esecuzione e che già consumano memoria. Poiché è trascorso un notevole periodo di tempo dall'ultima volta che il gestore della memoria di Windows ha controllato il sistema, probabilmente finirà per fare un sacco di scambio di memoria da quando è dal suo punto di vista, alcuni programmi sono inattivi da un po 'e altri hanno diventare attivo. Questo scambio ovviamente richiede un po 'di tempo e fa rallentare il disco per qualche tempo.

Il risultato finale è probabilmente una combinazione di fattori e interazioni tra attivazione hardware, paging, psicologia e frammentazione.

Se sei all'altezza, puoi scoprire definitivamente (almeno sul tuo sistema) qual è il collo di bottiglia eseguendo alcuni semplici test come l'utilizzo di Process Monitor per osservare l'attività dell'unità / file mentre Windows si iberna e riprende per vedere se tutto ciò il thrashing è dovuto all'accesso a hiberfil.syso pagefile.sys.


1
mi piace l'approccio psicologico. L'ibernazione su semplici dischi rigidi vecchi è mal progettata in modo UX, o non avrebbe mai dovuto esistere.
smonff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.