Hibernation повинен виписати вміст оперативної пам’яті на диск, а повернувшись зі сплячки, він повинен заповнити оперативну пам’ять збереженим вмістом. Чому повернення зі сплячки повільне, наприклад, система взагалі дуже не реагує?
Hibernation повинен виписати вміст оперативної пам’яті на диск, а повернувшись зі сплячки, він повинен заповнити оперативну пам’ять збереженим вмістом. Чому повернення зі сплячки повільне, наприклад, система взагалі дуже не реагує?
Відповіді:
Основна причина - введення / виведення диска. Читання та запис на фізичний диск набагато повільніше, ніж з оперативної пам'яті. Коли комп'ютер поновлюється з диска (сплячка), він також повинен живити компоненти, що може спричинити деяке уповільнення. Це сильно залежить від комп'ютера. SSD буде мати майже таку ж швидкість відновлення з диска, що і з оперативної пам'яті. Деякі комп’ютери дозволяють вам переміщувати мишу до того, як баран знову повністю заповниться, що спричинить низький час відгуку.
Примітка. Припустимо, у вас є 8 Гб оперативної пам’яті та SSD з пропускною здатністю 400 МБ / с. Це займе 8 * 1024 МБ / 400 МБ / с = 20,48 с. Це не така швидкість, як резюме з оперативної пам'яті.
Якщо припустити пропускну спроможність оперативної пам’яті 15 000 МБ / с, час відновлення становить 0,55 секунди.
Reading and writing to a physical disk is much slower than from RAM.
Так, але читання швидше, ніж написання, так чому б для читання жорсткого диска знадобилось стільки часу, ніж його написання?
Хоча оперативна пам’ять дуже швидка, жорсткий диск - навпаки. Уявіть, що вам доведеться скопіювати вміст оперативної пам’яті, який може бути близько 16 Гб, з жорсткого диска. Це 4 DVD-диски. Побачити?
Це компроміс. Чи витягуємо все, що було в оперативній пам’яті до сплячки назад з диска в оперативну пам’ять все відразу, або лише трохи за раз?
Усі ми знаємо, що читання сектора з прядильного диска займає практично стільки ж часу, як і записування цього сектору на той же прядильний диск - час пошуку + обертання. Тому ми можемо очікувати, що запис інформації з оперативної пам’яті на диск (у сплячому режимі) займе приблизно той самий час, коли читання цієї самої оперативної пам’яті з диска (відновлення зі сну). Але це не трапляється так через пейджинг попиту.
Якби ОС відразу зайняла все, то відновлення після сплячки зайняло б десятки секунд, але після цього воно діяло б так само, як якщо б ви ніколи не впадали в сплячку.
Замість цього програмісти ОС вибирають підкачку пошуку . Іншими словами, ОС за один раз витягує з диска трохи часу. Це має перевагу в тому, що відновлення після сплячого режиму займає значно менше часу, перш ніж він почне реагувати на клавіатуру та клацання мишею. З іншого боку, коли ви щось використовуєте вперше після сплячки, виникає невелика, але помітна затримка, коли ОС нарешті стає навколо, щоб завантажити її. Це трапляється навіть тоді, коли ви "вперше" щось вживаєте, можливо, через кілька хвилин після сплячки. Тож після відновлення в сплячому режимі (тобто, після того, як ви побачите екран, який здається більш-менш ідентичним екрану перед сплячим режимом), робота з машиною може здатися млявою на деякий час.
Як зазначає Synetech, в цьому є і трохи людської психології: оскільки екран вимикається відразу на початку сплячки, здається, він швидко вимикається. І користувач може негайно продовжувати все, що б ви хотіли зробити. Але після резюме зі сплячки користувач намагається щось зробити, і невеликі затримки дратують, оскільки вони перешкоджають тому, що намагається зробити користувач.
Я знаю, що ти маєш на увазі. Насправді здається, що світлодіод HDD блимає протягом тривалого часу після відновлення в сплячому режимі.
Дано кілька розумних пояснень щодо затримок через запуск апаратного забезпечення (та прискорення драйверів?) Та фрагментації (ви помітите, що система, свіжа з фабрики, як правило, перезимує та відновиться досить швидко, тоді як система, яка використовується деякий час, буде бути набагато повільнішим). Є ще кілька пояснень такої поведінки.
Коли ви перебуваєте в сплячому режимі, Windows передає оперативну пам'ять на накопичувач. Незважаючи на високі швидкості для читання оперативної пам’яті та запису на диск (навіть із дефрагментованим файлом сплячки на великому порожньому диску), для запису декількох гігабайт потрібно ще досить багато часу (ви помітите, що впадає в сплячку та відновлення системи з невеликою кількістю оперативної пам’яті. далеко не швидко). Екран швидко вимикається, але накопичувач (і материнська плата, вентилятори тощо) все на деякий час залишається запущеним до тих пір, поки не закінчиться промивка оперативної пам’яті на диску. (Переконайтеся, що не кидайте ноутбук із жорстким диском, поки він не закінчиться і повністю не вимкне диск).
Ви можете зробити кілька експериментальних тестів, щоб виміряти час, який потрібно від натискання сплячки до моменту вимкнення системи, і час, який проходить з моменту появи екрана Відновлення Windows до моменту, коли світлодіод HDD перестане блимати. Вони, ймовірно, будуть приблизно рівними. (Windows робить спроби зробити так, що він дуже швидко відновлюється зі сплячки, записавши, а потім спершу прочитавши ядро та інший файл у файл гібернації, щоб він міг одразу повернутися в режим запуску, а потім продовжувати завантажуватися в іншому в фоновому режимі і за необхідності, поки все не відновиться. Ви можете бачити цю поведінку в дії, оскільки екран входу відображається дуже швидко.)
Чому тоді здається, що відновлення займає більше часу. Цьому є два пояснення.
Це психологічно . Як зауважив Ден, оскільки екран вимикається відразу, коли ви перебуваєте в сплячому режимі, здається, він швидко вимикається, коли ви бачите весь процес відновлення (миготливий екран екрана та індикатор жорсткого диска).
Це пейджінг. Оскільки більшість людей використовують сплячий режим замість вимкнення, тому що вони хочуть уникнути виходу з програм, і так, щоб вони могли забрати місце, де вони зупинилися, це означає, що коли Windows поновлюється, існує купа програм, які вже працюють і вже споживають пам'ять. Оскільки минуло значну кількість часу з останнього разу, коли менеджер пам’яті Windows перевірив систему, вона, ймовірно, зробить купу пам’яті пам’яті, оскільки, з точки зору, деякі програми на деякий час дрімають, а інші мають активізуватися. Ця заміна, звичайно, займає деякий час і переточує диск на деякий час.
Кінцевий результат, ймовірно, поєднання факторів та взаємодій між апаратною активацією, пейджингом, психологією та фрагментацією.
Якщо ви вирішили це зробити, ви можете остаточно дізнатися (принаймні, у вашій системі), що є вузьким місцем, виконавши кілька простих тестів, таких як використання монітора процесів для спостереження за активністю диска / файлу, поки Windows перезимує та відновить, чи все це молотіння відбувається через доступ до hiberfil.sys
або pagefile.sys
.