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

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

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

    Общие советы


    Я обязан для начала рассказать про простые способы контролировать потребление памяти на macOS (этот совет годится и в Windows и Linux):

    1. Откройте «Мониторинг системы», отсортируйте приложения по памяти и перестаньте пользоваться приложениями, которые не нужны вам в данный момент
    2. Отсортируйте приложения по объему сжатой памяти — если вы найдете часто используемые приложения, то значит в вашей системе совсем не хватает объема ОЗУ
    3. Вынесите «тяжелые» процессы на отдельные сервера, если это возможно (например, компилируйте 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×2304x3 = 28 Мегабайт оперативной памяти. Если используемый софт кеширует в памяти слишком много участков экрана, то перевод его в Low Resolution Mode (с потерей визуального качества, безусловно) может, в теории, уменьшить потребление памяти в 4 раза. Перевод Telegram в low-res режим снизил на моем компьютере его потребление памяти с 500 мб до 150 мб — разница в 3,3 раза!

    Заключение


    Эта статья получилась очень короткая, но лишь потому, что лично для меня все эти советы помогли полностью избавиться от «лагов» в работе моего компьютера, связанных с недостатком памяти. У меня всё равно периодически возникают процессы, у которых наблюдается некоторый объем сжатой памяти или даже свопа, но при этом это, обычно, background-демона, которые не влияют на user experience. Если у вас есть возможность поставить в свой компьютер больше 16 Гб памяти, то я бы рекомендовал это сделать, даже если в данный момент вам столько не нужно. На macOS, к сожалению, такая возможность есть только в случае iMac Retina 5K и Mac Pro, и последний явно не стоит своих денег.

    Надеюсь, эта статья вам была полезна, буду рад комментариям.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 64

      –6
      компилируйте Android-приложения на отдельной машине

      Это как, так можно?
      –17
      Ёжики кололись, плакали, но продолжали есть кактусы… А не проще-ли поставить на мак винду (ну или линукс), раз уж вы его купили? Для андроид-дева на винде всё есть и отлично работает. А под iOS дев — можно и загрузиться в мак-ос.
        0
        Меня, в целом, в macOS и в iMac Retina 4K всё устраивает, кроме небольших тормозов при нехватке памяти и невозможности её проапгрейдить до 32 Гб. Если бы я действительно хотел пользоваться другой ОС, то я бы взял и другое железо, в котором можно иметь больше памяти и более быстрый процессор.
          0
          При аналогичном использовании win так же будет память есть, а то и больше. проверенно уже (
            –3
            Винда просто умрет при похожих вводных.
            У меня, например, Macbook Air с 4Гб оперативки, на 10-ке и 8-ке со сходным железом все будет очень тормозно. Не пробовали — не высказывайтесь
              +1
              Пробовал — высказываюсь. Вот винда. 5 гигов. Если iOS в этом размере тесно — то стоит задуматься. И да. Свой эйр с 4 гигами не приплетайте. Речь идет о маке с 16 гигами.
                +1
                Давайте подгрузим ДЕВ image
                0
                И до кучи. Я сейчас работаю в ремонте. Через меня прошло десятка два маков. Не тянут они. Красивые, модные, но безпонтовые.
                  0
                  Вариант того, что вы их не умеете использовать — не рассматривается, разумеется :)
                  У автора заметки конкретно нетипичные для Mac OS задачи и ему надо бы все это делать в линухе
                    0
                    У меня мак 12 года с 16Гб оперативки и подобных проблем не встречал, хотя регулярно юзаю IDE Jetbrains и Chrome и vs code и никаких проблем с производительностью не встречал
                +4
                В теории, работа в 32-битном режиме может уменьшить потребление памяти до 2 раз, заодно ограничив браузер 4 Гб памяти сверху (я бы ограничил ещё сильнее, если бы была возможность).


                Разница между 32-битным режимом и 64-битным в длине указателей, которые соответственно имеют размер 32 и 64 бита, а также в выравнивании в памяти, в сумме это никак не может дать экономии в 2 раза, т.к. сами данные меньше не становятся.
                  0
                  Поэтому я написал «в теории» :). Если большую часть памяти занимают инты и указатели, которые выросли в 2 раза при переходе на 64-битную платформу, то экономия составит 2 раза. Если хранятся только данные, то экономии не будет никакой. Реальный выигрыш в случае с браузером очень существенен, видимо из-за того, что в том же Javascript всё представлено объектами, на каждый из которых нужно хранить по указателю.
                    –1
                    Не знаю, как в других языках, а в С/С++ инты всегда 32-битные.
                      0
                      Это не совсем так. Есть разные модели внедрения 64-битности и одни предполагают 32-битные int и 64-битные long, другие — 64-битные int и long. Подробнее, есть, например, здесь: http://www.unix.org/whitepapers/64bit.html

                      Насколько я знаю, в винде по умолчанию 64 битные инты, а в *nix-системах — 32-битные int и 64-битные long
                        +1
                        Ладно, о С говорить не буду потому как не пользуюсь, а вот в С++ во всех известных мне ОС (Windows, Linux, Mac OS, iOS, Android) и со всеми известными мне компиляторами (MS, clang, GCC) тип int имеет размер 4 байта.
                          0
                          Да, вы правы, я перепутал. Всё наоборот — на винде по умолчанию даже long 32-битный. Но есть ЯП, где int все же является 64-битным на 64-битных платформах, например Go.
                        +2
                        Не знаю, как в других языках, а в С/С++ инты всегда 32-битные.

                        Это самая вопиющая ложь о C и C++, что мне приходилось слышать в этом календарном году. Возможно, вы имели в виду C#, но всё равно, пожалуйста, не делайте так больше.

                          0
                          Нет, я не имел в виду C#. Потрудитесь доказать своё обвинение. На какой ОС и с каким компилятором std::cout << sizeof(int); выведет число, отличное от 4? Я выше привёл список систем и компиляторов, на которых это именно 4 как в 32-разрядном, так и в 64-разрядном режиме.

                          int не является memsize_type, если что.
                            0
                            на 16-битной оси?) в любом случае, слово «всегда» словно красная тряпка для быка) стандарт ничего такого не обещает)
                              0
                              А я нигде и не ссылаюсь на стандарт, я ссылаюсь на собственный опыт.
                                +2

                                ИМХО, предложения, одновременно содержащие в своём составе слова «C++» и «всегда», должны также содержать ссылку на стандарт. В стандарте C# размер int постулируется, но не в C и C++, где мало в чём можно быть уверенным наверняка.

                              +2
                              На какой ОС и с каким компилятором std::cout << sizeof(int); выведет число, отличное от 4.

                              К сожалению, ваш вопрос подразумевает наличие заголовочного файла iostream (а также операционной системы), поэтому я не могу дать на него эффектный ответ. Однако, например, компиляторы Turbo C++ и Borland C++ в системе DOS или Windows 3.x умеют в std::cout и выведут число 2. При желании, можно и сейчас скомпилировать в каком-нибудь DOS-Box.


                              Раз уж вы ниже обращаетесь к своему опыту, обращусь к своему: доводилось писать прошивки для AVR, где длина int равна двум байтам. Да, на большинстве распространённых архитектур используются 32-битные целые, но не всегда — ребята из PVS-studio даже небольшую табличку составили. И пусть суперкомпьютеры Cray едва ли представляют практический интерес, комитет стандартизации C++ помнит о них. Как помнит он и о совсем дикой экзотике.


                              Кстати, вот цитата из одного ответа по предыдущей ссылке:


                              CHAR_BIT is 16 bits for 1750a, dsp16xx architectures. 
                              CHAR_BIT is 24 bits for dsp56k architecture.
                              CHAR_BIT is 32 bits for c4x architecture.

                              Насколько я могу судить, на этих платформах sizeof(int) == 1. Хотя вряд ли там найдётся iostream и компилятор C++, если только вы сами их не напишете.

                                0
                                Более того, кое где char может быть больше 8 бит и без знака.
                        –1
                        Не знаю, как на Mac'е, но на Win тот же Firefox x32 не будет есть больше 3 гиг. Если поставить Firefox x64, то будет. Поэтому, если хотите ограничить использование памяти лисой сверху, то ставьте 32.
                          –2
                          На маке файрфоксом не пользуюсь, но на винде он начинает тормозить где-то после 1,2 ГБ использованной оперативки, а к 1,8 ГБ им становится невозможно пользоваться, причём не из-за тормозов, а из-за глюков: начинают теряться разные элементы, не загружаются или не обрабатываются некоторые css- и js-файлы и т.п. — при активной работе прибиваю процесс браузера каждые пару часов.

                          Удивительно читать про 3 ГБ.

                          P.S: Да, я веб-разработчик, вкладок отрыто мало, как правило это документация, исходники, phpMyAdmin, StackOverflow, отлаживаемое веб-приложение, ну и всегда включен FireBug.
                            –2
                            Мне удивительно читать про 1,2 ГБ. Я как только запуская Firefox, он сразу 1.8 ГБ отжирает.
                        0
                        Не понял, какое отношение статья имеет к Go?
                          0
                          Никакого, убрал его из категории Go. Изначально я хотел написать также про Gogland и запуск go-приложений на отдельных серверах, но не стал.
                          –2
                          4К, 5К — это очень хорошо и задорно, но почему бы Вам не посмотреть на машинки предыдущих поколений + по нужды монитор, и надежней и обгрейду людскому Mac Pro тот подвержен и денег стоит горазда он ниже, состоит из аллюминия корпус его, бесшумно и холодно тело его.
                            +1
                            Ретина — одно из ключевых же преимуществ Мака, странно собственными руками душить его.
                              0
                              Большинство приложений потребляют вполне адекватное количество памяти на ретина-экране. В low-res режиме я лично запускаю буквально 2 приложения, которыми пользуюсь относительно редко, но которые удобно держать запущенными постоянно.
                              0
                              Ждем лета — будет 32Gb в MBP )
                                0
                                Предлагаете автору проапгрейдить память с 16ГБ до 32ГБ за 3000 баксов? :)
                                +3
                                Вывод: откажитесь от всего, чем постоянно пользуетесь, и вообще выключите мак от греха подальше. Я все правильно понял?
                                Не знаю, у меня на 16 гигах рубимайн, плюс андроид студия с эмулятором, плюс слэк, плюс хром с 20 закладками всегда открыты (минимум), тормозов 0, что я делаю не так?
                                  0
                                  Может быть просто это не ваш случай, у вас другие вкладки. По работе знаю, что открытая вкладка с сайта госзакупок легко сжирает несколько сот мегабайт оперативки, а открытая одна вкладка с большой таблицей в гугл.докс и гигабайт.… а если их несколько… Правда я про винду, но тут как раз тот случай, когда от используемой ОС мало что зависит.
                                    0
                                    большой таблицей в гугл.докс
                                    — а не проще это в нормальном редакторе таблиц открыть?
                                      0
                                      Иногда нет. Например, если файл редактируют несколько человек одновременно. А покупать Microsoft Share Point или нечто подобное для трех человек… как из пушки по воробьям.
                                  +9

                                  Не хватает 16 гб ОЗУ? Вы серьезно? Лаги на MacOS? Вы о чем тут вообще говорите? Я не знаю что нужно делать с памятью в 16 гб чтоб её не хватало. Научите.

                                  • UFO just landed and posted this here
                                      +1
                                      Без проблем (работаю системным иженером):
                                      — открываем несколько вкладок с автообновлением grpahite (отображение метрик)
                                      — открываем порядка 20-30 вкладок iterm (совсем не удобно каждый раз логинится по ssh)
                                      — открыть систему мониторинга с автообновлением, например, zabbix
                                      — thunderbird (увы, но стандартный mail мне неудобен)

                                      + по мелочи: slack, safari (с владками), skype, viber, itunes.

                                      Это стандартный набор (без сильных излишеств) для работы. При этом я выключил все проверки автоапдейтов, где только можно.

                                      Хотя, если вы программист и пишите только в одной вкладке sublime то вам возможно и 8 будет много.
                                      • UFO just landed and posted this here
                                          0
                                          Да, представьте себе жрёт.
                                            0
                                            Если учесть, что многие терминалы поддерживают unlimited scrollback, автоматическую запись истории с возможностью воспроизвести вывод на любой момент времени в прошлом и т.д., то становится не таким уж смешным тот факт, что терминал тоже может жрать дохрена памяти.
                                              0
                                              Да, именно так. Но что бы его заставить жрать меньше памяти, пришлось ограничить количество строк при scrollback до 1000. Очень часто этого бывает мало, поэтому даже для локальных действий всё выполняю в screen'e.
                                        +2
                                        ХМ, имею мак с 16 гигами памяти, покупал еще в 12 году. Использую очень активно, ПО практически не закрываю из нагруженного отрыты сразу LightRoom, Phoptoshop, PyCharm, Atom практически не закрываю этот софт. Из браузеров Safari и Chrome + иногда Opera, Firefox в которых тоже открыто не меньше 20 вкладок в каждом. Начинаю испытывать лаги в фотошопе в виде прорисовки экрана часа через 3 активной работы с LR и работы с гигабайтными PSD файлами. Лечиться открыть закрыть PS. Но даже при закрытом софте через 3-4 часа активного ретачинга начинается такой глюк так что открытое ПО не причем. Других багов не наблюдаю. У меня 3 мака все работают одинаково. Может тут все же проблема другая? Например не лицензионное по?
                                          0
                                          Air 11" последняя модель перед снятием с продаж. 4гб памяти.

                                          Rails(jetbtains)
                                          Nodejs(vscode)
                                          Safari 10+ открытых вкладок 2-5 с отладчиком
                                          iTunes
                                          Mail
                                          Иногда открыты пакеты от адоба. Но редко когда постоянно

                                          Балуюсь в maya 2016

                                          Вообще проблем с памятью нет. Есть проблемы с нагреванием камня но не с памятью.
                                            0
                                            Как вы понимаете, что у вас нет проблем с памятью? Посмотрите на объем сжатой памяти в «Activity Monitor» — если её там много, то это и есть причина, почему у вас нагревается CPU. Сжатая память позволяет сделать сносной работу на компьютере, на котором не хватает памяти, но первопричиной проблем является именно её недостаток.
                                              0

                                              Так у вас проблема в том, что Mac лагает при таком потреблении памяти или просто в психологическом дискомфорте?

                                                0
                                                Визуально очень заметно, когда начинает использоваться сжатая память — плавность работы теряется, что лично меня выводит из себя. Вероятно, тех, кто пишет, что у них все ок, это просто не раздражает, как меня.
                                            0
                                            Electron приложения — это шик. Ради интереса ставил себе парочку. Shift — просто Gmail в отдельном окне. GitKraten — аналог SourceTree. Тут и 32 гигов не хватит.

                                            image
                                            image
                                              0
                                              У меня на винде telegram жрет 40мб. И slack в отдельном приложении 100мб. Вот уж макось дает.
                                                0
                                                Ха Ха Ха, slack ест одинаково много на любой системе. Вы смотрите на родительский процесс, который может вообще ничего не весить.
                                                  0
                                                  Вот, слак 120мб суммарно на все процессы.

                                                  image
                                                    0
                                                    О чем я собственно и говорил. У топикстартера на старте 500-700 метров жрет.
                                                      0
                                                      Я вас и решил поддержать =)
                                                        0
                                                        Я уже потом увидел, что аватарки разные, сорян :)
                                                          0
                                                          Проблема не в памяти в момент запуска. На Macosx в 3 чатах, через час он начинает жрать уже не 120 мб, а 1-2 гигабайта.
                                                      0
                                                      Через 1 час использования становится вот так:

                                                        0

                                                        Хм, корпоративный чятик отъедает 120 метров… Кажется скоро будут актуальными реабилитационные курсы по C++ для бывших JavaScript программистов — в конце-концов до физического предела размеров транзисторов осталось не так уж много.

                                                        0
                                                        48,3 родительский и и 4 дочерних на 53 метра. Если нужно позже могу пруфы скинуть.
                                                          –2
                                                          Если бы топик был про Windows, ваши комментарии были бы очень кстати.
                                                      –2

                                                      А вот в MacBook Pro 2016-го года используют быстрые SSD, скорость которых сравнима с первыми DDR-ами.

                                                        0
                                                        Уже второй ноут Ретина 15 с 16 ОЗУ. За все время проблем не было: Chrome, Slack, Skype, Airmail, Photoshop, Parallels+Win10+VS.NET…

                                                        Но последние пару месяцев иногда система стала ставить на паузу приложения и предлагать что-нибудь закрыть. Вроде как виновата свежая версия Хрома.

                                                        Only users with full accounts can post comments. Log in, please.