Утилита SimSlim обещает снизить расход памяти одного симулятора Xcode примерно с 4 ГБ до 900 МБ. Для iOS-команд, которые держат несколько виртуальных устройств ради параллельных тестов, оптимизация симуляторов Xcode может оказаться полезнее очередного апгрейда Mac: в тесте на Mac с M1 Pro и 16 ГБ ОЗУ одновременно работали 12 симуляторов.
Инструмент выпустили разработчики MobAI, сообщает Habr / Новости. SimSlim не ускоряет код приложения и не меняет сам Xcode: она отключает часть сервисов, которые macOS запускает внутри виртуального устройства вместе с симулятором, хотя при обычной проверке интерфейса или сценария приложения они часто не нужны.
По данным авторов проекта, после применения утилиты число процессов в симуляторе сократилось с 258 до 70. Показатель phys_footprint — объём памяти процесса с учётом сжатых и выгруженных на диск страниц — снизился примерно с 4 ГБ до 900 МБ. Это важное уточнение: смотреть только на привычный индикатор занятой оперативной памяти в macOS было бы слишком оптимистично, особенно когда система уже начала активно сжимать данные или использовать накопитель.
Под нож идут фоновые компоненты, связанные с Siri, Spotlight, анализом фотографий, синхронизацией с iCloud и другими системными функциями. В реальном iPhone эти службы могут быть частью пользовательского опыта, но в тестовом устройстве, которое запущено лишь для проверки экрана регистрации, уведомлений или API-сценария, они нередко создают нагрузку без практической пользы. При этом SimSlim позволяет включить отдельные службы обратно, если тест требует именно такого окружения.
Проблема знакома мобильным разработчикам давно. Один симулятор обычно не выглядит серьёзной нагрузкой, но в рабочем дне их становится больше: разные версии iOS, размеры экранов, локали, ветки приложения, ручная проверка и прогоны автотестов. На ноутбуке с 16 ГБ памяти такая коллекция быстро конкурирует за ресурсы с Xcode, браузером, мессенджерами и локальными сервисами. В результате разработчик тратит время не на отладку, а на ожидание, пока система освободит память.
Здесь SimSlim предлагает довольно приземлённый подход: не пытаться сделать виртуальный iPhone «легче» магией, а не запускать в нём всё, что может понадобиться полноценному устройству. Для команд это особенно интересно в CI и на общих машинах для тестирования, где плотность запущенных симуляторов прямо влияет на стоимость инфраструктуры и длительность очереди. Но перед внедрением в тестовый контур стоит проверить критичные сценарии: отключённая синхронизация, поиск или обработка медиатеки могут быть как раз теми зависимостями, которые приложение использует косвенно.
Утилита распространяется с открытым исходным кодом по лицензии MIT и работает на macOS при установленном Xcode. Это снижает барьер для эксперимента: команду не привязывают к новому облачному сервису или платной лицензии, а технические специалисты могут изучить, какие процессы меняются. Однако заявленные цифры относятся к конкретному тесту на M1 Pro с 16 ГБ памяти; на другой версии macOS, Xcode или наборе симуляторов результат может отличаться.
Для русскоязычных iOS-разработчиков оптимизация симуляторов Xcode выглядит не как замена мощным рабочим станциям, а как способ получить от уже купленных машин больше параллельности. Если подход окажется воспроизводимым, следующим логичным шагом станет не просто ручной запуск SimSlim, а его аккуратное включение в процессы локального тестирования и CI — с профилями для обычных UI-проверок и для сценариев, которым действительно нужны системные службы.

