Как уместить все приложения в 16 Гб ОЗУ на macOS
В интернете есть много тривиальных статей, как можно уменьшить потребление памяти на macOS из серии «выключите ненужные программы, установите The Great Suspender для Google Chrome» и т.д. Если вы перепробовали эти советы и всё равно страдаете от недостатка памяти, то я бы хотел поделиться опытом, как лично я решаю эти проблемы.
Общие советы
Я обязан для начала рассказать про простые способы контролировать потребление памяти на macOS (этот совет годится и в Windows и Linux):
- Откройте «Мониторинг системы», отсортируйте приложения по памяти и перестаньте пользоваться приложениями, которые не нужны вам в данный момент
- Отсортируйте приложения по объему сжатой памяти — если вы найдете часто используемые приложения, то значит в вашей системе совсем не хватает объема ОЗУ
- Вынесите «тяжелые» процессы на отдельные сервера, если это возможно (например, компилируйте Android-приложения на отдельной машине)
Смена браузера
Вы удивитесь, но Google Chrome (и Safari) — не единственные существующие под macOS браузеры. Firefox тоже прекрасно работает, и является одним из очень немногих приложений, которые поддерживают 32-битный режим.
В теории, работа в 32-битном режиме может уменьшить потребление памяти до 2 раз, заодно ограничив браузер 4 Гб памяти сверху (я бы ограничил ещё сильнее, если бы была возможность). В реальности, конечно, разница не такая большая, но она вполне заметна. Ну и сам Firefox экономнее расходует память, в том числе потому, что у него всего 2 процесса — один процесс для UI и второй процесс для содержимого вкладок. Вероятнее всего, со временем это преимущество будет уменьшаться, но на момент написания статьи Firefox в 32-битном режиме потреблял примерно в 2 раза меньше памяти, чем Google Chrome, и отдавал память обратно системе намного охотнее, когда закрывались лишние вкладки.
Избавление от приложений на базе Electron
Если у вас есть приложения на базе Electron, например HipChat или Slack, я очень рекомендую избавиться от них в пользу отдельной браузерной вкладки, поскольку Electron это на самом деле Chromium, а он для поддержания своей работы требует огромные объемы оперативной памяти (500–700 Мб на старте).
Перевод приложений в Low Resolution Mode
Некоторые приложения (например, Telegram) могут потреблять очень много памяти для того, что они делают. Иногда это связано с разрешением экрана. На моем iMac Retina 4K один скриншот экрана будет занимать 4096×2304×3 = 28 Мегабайт оперативной памяти. Если используемый софт кеширует в памяти слишком много участков экрана, то перевод его в Low Resolution Mode (с потерей визуального качества, безусловно) может, в теории, уменьшить потребление памяти в 4 раза. Перевод Telegram в low-res режим снизил на моем компьютере его потребление памяти с 500 мб до 150 мб — разница в 3,3 раза!
Заключение
Эта статья получилась очень короткая, но лишь потому, что лично для меня все эти советы помогли полностью избавиться от «лагов» в работе моего компьютера, связанных с недостатком памяти. У меня всё равно периодически возникают процессы, у которых наблюдается некоторый объем сжатой памяти или даже свопа, но при этом это, обычно, background-демона, которые не влияют на user experience. Если у вас есть возможность поставить в свой компьютер больше 16 Гб памяти, то я бы рекомендовал это сделать, даже если в данный момент вам столько не нужно. На macOS, к сожалению, такая возможность есть только в случае iMac Retina 5K и Mac Pro, и последний явно не стоит своих денег.
Надеюсь, эта статья вам была полезна, буду рад комментариям.
Комментарии (26)
9 апреля 2017 в 21:31
–5↑
↓
компилируйте Android-приложения на отдельной машине
Это как, так можно?9 апреля 2017 в 21:43
–12↑
↓
Ёжики кололись, плакали, но продолжали есть кактусы… А не проще-ли поставить на мак винду (ну или линукс), раз уж вы его купили? Для андроид-дева на винде всё есть и отлично работает. А под iOS дев — можно и загрузиться в мак-ос.9 апреля 2017 в 21:48
0↑
↓
Меня, в целом, в macOS и в iMac Retina 4K всё устраивает, кроме небольших тормозов при нехватке памяти и невозможности её проапгрейдить до 32 Гб. Если бы я действительно хотел пользоваться другой ОС, то я бы взял и другое железо, в котором можно иметь больше памяти и более быстрый процессор.10 апреля 2017 в 00:30
–1↑
↓
При аналогичном использовании win так же будет память есть, а то и больше. проверенно уже (10 апреля 2017 в 09:35
–1↑
↓
Винда просто умрет при похожих вводных.
У меня, например, Macbook Air с 4Гб оперативки, на 10-ке и 8-ке со сходным железом все будет очень тормозно. Не пробовали — не высказывайтесь
9 апреля 2017 в 21:44
+2↑
↓
В теории, работа в 32-битном режиме может уменьшить потребление памяти до 2 раз, заодно ограничив браузер 4 Гб памяти сверху (я бы ограничил ещё сильнее, если бы была возможность).
Разница между 32-битным режимом и 64-битным в длине указателей, которые соответственно имеют размер 32 и 64 бита, а также в выравнивании в памяти, в сумме это никак не может дать экономии в 2 раза, т.к. сами данные меньше не становятся.
9 апреля 2017 в 21:46
0↑
↓
Поэтому я написал «в теории» :). Если большую часть памяти занимают инты и указатели, которые выросли в 2 раза при переходе на 64-битную платформу, то экономия составит 2 раза. Если хранятся только данные, то экономии не будет никакой. Реальный выигрыш в случае с браузером очень существенен, видимо из-за того, что в том же Javascript всё представлено объектами, на каждый из которых нужно хранить по указателю.9 апреля 2017 в 22:13
0↑
↓
Не знаю, как в других языках, а в С/С++ инты всегда 32-битные.9 апреля 2017 в 22:17
0↑
↓
Это не совсем так. Есть разные модели внедрения 64-битности и одни предполагают 32-битные int и 64-битные long, другие — 64-битные int и long. Подробнее, есть, например, здесь: http://www.unix.org/whitepapers/64bit.htmlНасколько я знаю, в винде по умолчанию 64 битные инты, а в *nix-системах — 32-битные int и 64-битные long
9 апреля 2017 в 23:30
+1↑
↓
Ладно, о С говорить не буду потому как не пользуюсь, а вот в С++ во всех известных мне ОС (Windows, Linux, Mac OS, iOS, Android) и со всеми известными мне компиляторами (MS, clang, GCC) тип int имеет размер 4 байта.10 апреля 2017 в 00:02
0↑
↓
Да, вы правы, я перепутал. Всё наоборот — на винде по умолчанию даже long 32-битный. Но есть ЯП, где int все же является 64-битным на 64-битных платформах, например Go.
10 апреля 2017 в 07:12
–1↑
↓
Не знаю, как на Mac’е, но на Win тот же Firefox x32 не будет есть больше 3 гиг. Если поставить Firefox x64, то будет. Поэтому, если хотите ограничить использование памяти лисой сверху, то ставьте 32.
9 апреля 2017 в 21:55
0↑
↓
Не понял, какое отношение статья имеет к Go?9 апреля 2017 в 21:57 (комментарий был изменён)
0↑
↓
Никакого, убрал его из категории Go. Изначально я хотел написать также про Gogland и запуск go-приложений на отдельных серверах, но не стал.
9 апреля 2017 в 22:09
–3↑
↓
4К, 5К — это очень хорошо и задорно, но почему бы Вам не посмотреть на машинки предыдущих поколений + по нужды монитор, и надежней и обгрейду людскому Mac Pro тот подвержен и денег стоит горазда он ниже, состоит из аллюминия корпус его, бесшумно и холодно тело его.9 апреля 2017 в 22:34
–1↑
↓
Ретина — одно из ключевых же преимуществ Мака, странно собственными руками душить его.9 апреля 2017 в 22:40
0↑
↓
Большинство приложений потребляют вполне адекватное количество памяти на ретина-экране. В low-res режиме я лично запускаю буквально 2 приложения, которыми пользуюсь относительно редко, но которые удобно держать запущенными постоянно.
10 апреля 2017 в 00:28
0↑
↓
Ждем лета — будет 32Gb в MBP)10 апреля 2017 в 03:50
+1↑
↓
Вывод: откажитесь от всего, чем постоянно пользуетесь, и вообще выключите мак от греха подальше. Я все правильно понял?
Не знаю, у меня на 16 гигах рубимайн, плюс андроид студия с эмулятором, плюс слэк, плюс хром с 20 закладками всегда открыты (минимум), тормозов 0, что я делаю не так?10 апреля 2017 в 09:50
0↑
↓
Может быть просто это не ваш случай, у вас другие вкладки. По работе знаю, что открытая вкладка с сайта госзакупок легко сжирает несколько сот мегабайт оперативки, а открытая одна вкладка с большой таблицей в гугл.докс и гигабайт.…, а если их несколько… Правда я про винду, но тут как раз тот случай, когда от используемой ОС мало что зависит.
10 апреля 2017 в 09:50
+4↑
↓
Не хватает 16 гб ОЗУ? Вы серьезно? Лаги на MacOS? Вы о чем тут вообще говорите? Я не знаю что нужно делать с памятью в 16 гб чтоб её не хватало. Научите.
10 апреля 2017 в 10:35
+1↑
↓
Тоже хочу научиться. Докер с запущенными 5–10 контейнерами, PhpStorm с 2–4 постоянно открытыми проектами, DataGrip, сафари с 5–20 вкладками, мелочи вроде скайпа, десятка терминалов и RDP, пара экселек в Pages — МакБук Про 2015-го, 8 гиг оперативки. Вообще никаких проблем. О чем говорит ТС — я не понял, если честно.10 апреля 2017 в 10:48
0↑
↓
Без проблем (работаю системным иженером):
— открываем несколько вкладок с автообновлением grpahite (отображение метрик)
— открываем порядка 20–30 вкладок iterm (совсем не удобно каждый раз логинится по ssh)
— открыть систему мониторинга с автообновлением, например, zabbix
— thunderbird (увы, но стандартный mail мне неудобен)+ по мелочи: slack, safari (с владками), skype, viber, itunes.
Это стандартный набор (без сильных излишеств) для работы. При этом я выключил все проверки автоапдейтов, где только можно.
Хотя, если вы программист и пишите только в одной вкладке sublime то вам возможно и 8 будет много.
10 апреля 2017 в 10:17
0↑
↓
ХМ, имею мак с 16 гигами памяти, покупал еще в 12 году. Использую очень активно, ПО практически не закрываю из нагруженного отрыты сразу LightRoom, Phoptoshop, PyCharm, Atom практически не закрываю этот софт. Из браузеров Safari и Chrome + иногда Opera, Firefox в которых тоже открыто не меньше 20 вкладок в каждом. Начинаю испытывать лаги в фотошопе в виде прорисовки экрана часа через 3 активной работы с LR и работы с гигабайтными PSD файлами. Лечиться открыть закрыть PS. Но даже при закрытом софте через 3–4 часа активного ретачинга начинается такой глюк так что открытое ПО не причем. Других багов не наблюдаю. У меня 3 мака все работают одинаково. Может тут все же проблема другая? Например не лицензионное по?10 апреля 2017 в 10:24
0↑
↓
Air 11» последняя модель перед снятием с продаж. 4 гб памяти.Rails (jetbtains)
Nodejs (vscode)
Safari 10+ открытых вкладок 2–5 с отладчиком
iTunes
Mail
Иногда открыты пакеты от адоба. Но редко когда постоянноБалуюсь в maya 2016
Вообще проблем с памятью нет. Есть проблемы с нагреванием камня, но не с памятью.
10 апреля 2017 в 10:54
0↑
↓
Electron приложения — это шик. Ради интереса ставил себе парочку. Shift — просто Gmail в отдельном окне. GitKraten — аналог SourceTree. Тут и 32 гигов не хватит.