Как уместить все приложения в 16 Гб ОЗУ на macOS

427d49f3d3484eb7a99fb7dd2dfaf986.jpgЗаголовок может вам показаться странным, если вы не используете macOS, но если вы пользуетесь продуктами экосистемы Apple (особенно ноутбуками или iMac Retina 4K), то в процессе работы можете столкнуться с неприятной проблемой: все необходимые для работы инструменты никак не хотят помещаться в 16 Гб оперативной памяти, и система начинает периодически «тормозить» и использовать большое количество сжатой памяти и свопа.

В интернете есть много тривиальных статей, как можно уменьшить потребление памяти на macOS из серии «выключите ненужные программы, установите The Great Suspender для Google Chrome» и т.д. Если вы перепробовали эти советы и всё равно страдаете от недостатка памяти, то я бы хотел поделиться опытом, как лично я решаю эти проблемы.

Общие советы


Я обязан для начала рассказать про простые способы контролировать потребление памяти на macOS (этот совет годится и в Windows и Linux):
  1. Откройте «Мониторинг системы», отсортируйте приложения по памяти и перестаньте пользоваться приложениями, которые не нужны вам в данный момент
  2. Отсортируйте приложения по объему сжатой памяти — если вы найдете часто используемые приложения, то значит в вашей системе совсем не хватает объема ОЗУ
  3. Вынесите «тяжелые» процессы на отдельные сервера, если это возможно (например, компилируйте Android-приложения на отдельной машине)

Смена браузера


d56238281d644379ad30d550c01260e0.png Вы удивитесь, но 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 гигов не хватит.

    image
    image

© Habrahabr.ru