Как ускорить пробуждение Мака из режима сна

Ускорение пробуждения Мака после режима сна

Хотя мы уже четвёртый год ведём проект AppStudio, регулярно появляются разные технические вопросы, интересующие и нас самих. К числу таких давних задачек относится подтормаживание MacBook в момент пробуждения после режима сна.

Когда-то у автора материала был белый пластиковый MacBook. В те времена подвисания и лаги на несколько секунд можно было объяснить не самым новым процессором и не самым быстрым жёстким диском. Но когда на смену пластмассовому макбуку пришёл новенький MacBook Air с SSD, вместе с ним пришла надежда и на то, что любые тормоза уйдут в прошлое. И эта надежда практически полностью оправдалась, если бы не одно но — при выходе из режима сна макбук по-прежнему любит иногда зависать на несколько секунд, крепко задумавшись над чем-то.

К счастью, этим вопросом озаботились не только мы. Например, редакция OS X Daily провела небольшое исследование и нашла наиболее вероятную причину подобного поведения Мака. Давайте и мы с вами разберёмся в этом.

Полагаем, ни для кого ни секрет, что сон и для Маков, и для PC — понятие обширное. Если не вдаваться в детали, существует несколько различных режимов сна:

  • сон с сохранением содержимого оперативной памяти
  • сон с копированием содержимого оперативной памяти на диск
  • гибернация, в ходе которой оперативная память копируется на диск, а компьютер выключается

При желании на Маке можно активировать любой из этих режимов сна c помощью терминальной команды sudo pmset -a hibernatemode 0, в которой ноль надо поменять на нужную вам цифру:

  • 0 — сон без сохранения содержимого оперативки на диск
  • 1 — гибернация
  • 3 — сон с копированием содержимого оперативки на диск (этот режим используется на большинстве Маков по умолчанию)
  • 5 — гибернация с шифрованием содержимого оперативки
  • 7 — режим 3 с шифрованием оперативки

Ничего принципиально нового мы пока не написали — всё это и так хорошо известно.

Но куда интереснее узнать то, как устроен этот самый режим №3. Копирование содержимого оперативной памяти на диск происходит не сразу после того, как Мак засыпает, а лишь через некоторое время. Это сделано как раз с целью ускорения пробуждения Мака. После того, как этот интервал времени проходит, содержимое оперативки копируется на диск. Соответственно, если ваш Мак долго пробыл в режиме сна, то при его пробуждении содержимое оперативки копируется с диска обратно в память. На это и уходит время.

Что делать в этом случае? Ответ напрашивается сам собой: надо отрегулировать интервал времени, после которого спящий Мак копирует содержимое оперативки на диск.

Для начала надо узнать этот интервал командой в Терминале:

pmset -g | grep standbydelay

Вы увидите значение в секундах. Например, для MacBook оно обычно равно 4200, т.е. ноут бэкапит оперативную память на диск через 70 минут, после чего засыпает окончательно. Поменять это значение можно командой:

sudo pmset -a standbydelay 36000

36000 замените на нужное вам количество секунд. Поскольку команда вводится с префиксом sudo, после нажатия Enter вам потребуется ввести пароль от аккаунта и снова нажать Enter.

В качестве заключения стоит предупредить о возможных последствиях увеличения параметра standbydelay. Во-первых, MacBook будет активнее расходовать заряд батареи в режиме сна; во-вторых, повышается риск потери несохранённых данных в том случае, если вы оставляете макбук спать с низким уровнем заряда. Разумеется, для десктопных Маков эти ограничения неактуальны.