Як вмістити всі додатки в 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 ст.12304x3 = 28 Мегабайт оперативної пам'яті. Якщо використовуваний софт кешує в пам'яті занадто багато ділянок екрану, то переведення його в Low Resolution Mode (з втратою візуальної якості, безумовно) може, в теорії, зменшити споживання пам'яті в 4 рази. Переклад Telegram в low-res режим знизив на моєму комп'ютері його споживання пам'яті з 500 мб до 150 мб - різниця в 3,3 рази!

Ув'язнення

Ця стаття вийшла дуже короткою, але лише тому, що особисто для мене всі ці поради допомогли повністю позбутися «лагів» у роботі мого комп'ютера, пов'язаних з нестачею пам'яті. У мене все одно періодично виникають процеси, у яких спостерігається деякий обсяг стисненої пам'яті або навіть свопу, але при цьому це, зазвичай, background-демона, які не впливають на user experience. Якщо у вас є можливість поставити в свій комп'ютер більше 16 Гб пам'яті, то я б рекомендував це зробити, навіть якщо в даний момент вам стільки не потрібно. На macOS, на жаль, така можливість є тільки в разі iMac Retina 5K і Mac Pro, і останній явно не коштує своїх грошей.

Сподіваюся, ця стаття вам була корисна, буду радий коментарям.