Заголовок може вам здатися дивним, якщо ви не використовуєте macOS, але якщо ви користуєтеся продуктами екосистеми Apple (особливо ноутбуками або iMac Retina 4K), то в процесі роботи можете зіткнутися з неприємною проблемою: всі необхідні для роботи інструменти ніяк не хочуть поміщатися в 16 Гб оперативної пам'яті, і система починає періодично «гальмувати» і використовувати велику кількість стисненої пам'яті і свопу.
В інтернеті є багато тривіальних статей, як можна зменшити споживання пам'яті на 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 ст.12304x3 = 28 Мегабайт оперативної пам'яті. Якщо використовуваний софт кешує в пам'яті занадто багато ділянок екрану, то переведення його в Low Resolution Mode (з втратою візуальної якості, безумовно) може, в теорії, зменшити споживання пам'яті в 4 рази. Переклад Telegram в low-res режим знизив на моєму комп'ютері його споживання пам'яті з 500 мб до 150 мб - різниця в 3,3 рази!
Ув'язнення
Ця стаття вийшла дуже короткою, але лише тому, що особисто для мене всі ці поради допомогли повністю позбутися «лагів» у роботі мого комп'ютера, пов'язаних з нестачею пам'яті. У мене все одно періодично виникають процеси, у яких спостерігається деякий обсяг стисненої пам'яті або навіть свопу, але при цьому це, зазвичай, background-демона, які не впливають на user experience. Якщо у вас є можливість поставити в свій комп'ютер більше 16 Гб пам'яті, то я б рекомендував це зробити, навіть якщо в даний момент вам стільки не потрібно. На macOS, на жаль, така можливість є тільки в разі iMac Retina 5K і Mac Pro, і останній явно не коштує своїх грошей.
Сподіваюся, ця стаття вам була корисна, буду радий коментарям.
