Каждый раз, когда я переводю Windows 7 в спящий режим, а затем возобновляю работу, вся система некоторое время выглядит нормально, а затем все замедляется, пока системе не понадобится около 10 секунд для загрузки веб-страницы, на которой она была загружена мгновенно раньше.
Посмотрите на индикатор жесткого диска в вашей системе. Держу пари, что в течение нескольких минут после выхода из спящего режима светодиод HDD неистово мигает (или даже гаснет).
Это нормально. Когда Windows возвращается из режима гибернации, она не считывает весь файл гибернации (размер которого может составлять несколько гигабайт) в память. Вместо этого он загружает части, которые имеют решающее значение для возобновления работы (ядро, память драйверов, служб, активных программ и т.д.), А остальное загружается в фоновом режиме. Таким образом, вы можете сразу же начать работать снова, вместо того, чтобы ждать минуту или две.
Естественно, это означает, что система будет зависать, пока Windows продолжает загружать остальную часть системы в фоновом режиме. Конечно, он старается быть максимально отзывчивым, но не удивительно, что это легче сказать, чем сделать. Это особенно верно, так как активность заставляет ее отойти от фоновой загрузки, чтобы расставить приоритеты для чего-то другого, поэтому, например, если вы сводите программу к минимуму, Windows должна попытаться прекратить загрузку того, над чем она работала, и быстро восстановить память для этой другой программы, но может потребоваться завершить текущую операцию, прежде чем выполнять боковое отслеживание.
Я уже пробовал SFC / SCANNOW, это не имеет никакого значения.
Потому что с приводом все в порядке.
Можно ли что-то сделать, чтобы это не произошло?
Помимо получения большего объема памяти и более быстрого накопителя (например, SSD), лучшее, что вы можете сделать для повышения производительности после спящего режима, - это закрыть как можно больше программ и освободить как можно больше памяти перед переходом в спящий режим. Очевидно, что это несколько отрицательно сказывается на цели гибернации, но ничто не является бесплатным, и если вам нужна производительность с этой целью, то вы должны платить с этой стороны, и наоборот.
В качестве бонуса, если вы уменьшите количество запущенных программ и используемую память до перехода в режим гибернации, то вы также получите преимущество, заключающееся в том, что Windows работает в режиме гибернации быстрее, поскольку ей не нужно экономить столько памяти на диске.
Кроме того, статья MSDN, о которой упоминал Боб, объясняет еще одну причину, по которой возобновление происходит медленно (не в режиме гибернации):
Усовершенствования загрузчика также обеспечивают аналогичные улучшения во времени возобновления гибернации, в основном за счет оптимизации путей ввода-вывода, используемых Ntldr для считывания образа гибернации. Файл гибернации сжимается так, как он написан, и для эффективности алгоритм сжатия перекрывается с файловым вводом / выводом. Однако при выходе из режима гибернации Ntldr использует BIOS для выполнения операций ввода-вывода; поэтому не представляется возможным перекрывать операции чтения дискового ввода-вывода с декомпрессией.
...
Для оптимизации процесса гибернации в Windows XP было реализовано несколько улучшений. Алгоритм сжатия оптимизирован для сжатия и распаковки больших блоков данных (64 КБ). Кроме того, сжатие перекрывается с записью на диск. Поскольку текущий блок данных переносится на диск, следующий блок данных сжимается. Наложение сжатия на запись на диск делает время сжатия практически свободным. Кроме того, файл гибернации записывается с использованием IDE DMA вместо режима PIO. Большинство современных IDE-контроллеров и дисков достигают наилучшей производительности только в режиме DMA.
Другими словами, процесс гибернации происходит в Windows со всеми драйверами и такими загруженными и готовыми, чтобы Windows могла получить доступ к оборудованию (то есть к дискам) с максимальной скоростью. Однако, когда вы возобновляете работу, Windows не загружается, поэтому она использует BIOS, который обеспечивает только базовый уровень обслуживания - если даже такой большой - в конце концов, B в BIOS означает Basic
.
Ситуация для Windows 7 в системах EFI немного лучше, но, по сути, такая же. Для EFI было бы невозможно иметь «драйверы» для каждого возможного аппаратного устройства, поэтому даже система EFI не может обеспечить полный доступ с максимальной производительностью.
Поэтому восстановление из спящего режима всегда будет несколько медленным (по крайней мере, часть, которая запускает Windows и работает; фоновая загрузка остатка будет немного быстрее). На самом деле, чем больше памяти вы установили, тем дольше это происходит, потому что с диска требуется больше данных для чтения - гибернация - это единственный недостаток увеличения объема памяти.