Как ускорить пробуждение Мака из режима сна
Хотя мы уже четвёртый год ведём проект 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 будет активнее расходовать заряд батареи в режиме сна; во-вторых, повышается риск потери несохранённых данных в том случае, если вы оставляете макбук спать с низким уровнем заряда. Разумеется, для десктопных Маков эти ограничения неактуальны.