Технологии, наука и безопасность своими словами

Технологии

SimSlim сокращает память симуляторов Xcode с 4 ГБ до 900 МБ, отключая фоновые службы

Команда MobAI выпустила утилиту SimSlim, которая уменьшает расход ресурсов симуляторов Xcode за счёт отключения лишних фоновых процессов. В тестах на Mac с чипом M1 Pro и 16 ГБ памяти одновременно работали 12 симуляторов — цифра, которая для такой конфигурации выглядит непривычно. Экономия достигается не переделкой самого эмулятора, а отключением служб, которые стартуют вместе с виртуальным устройством: Siri, Spotlight, анализа фотографий, синхронизации с iCloud и ряда других.

Для проверки интерфейса на виртуальном экране почти всё это не нужно, но каждый процесс занимает память и процессорное время. По замерам авторов, число запущенных процессов падает с 258 до 70, а объём используемой памяти — с 4 ГБ примерно до 900 МБ. Считали не «на глаз», а по показателю phys_footprint, который учитывает сжатую и выгруженную на диск память, то есть отражает реальную нагрузку на систему, а не только ту часть, что в данный момент лежит в оперативной памяти.

Проверка шла на машине с чипом M1 Pro и 16 ГБ оперативной памяти — конфигурации, которая для мобильной разработки считается скорее рабочей, чем избыточной. Именно на таких компьютерах параллельный запуск нескольких симуляторов обычно и упирается в доступную память. Среди отключаемых служб — Siri, Spotlight, анализ фотографий и синхронизация с iCloud.

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

SimSlim рассчитан на macOS с установленным Xcode, то есть на тех, кто уже собирает приложения под устройства Apple. Код инструмента опубликован на GitHub по лицензии MIT — его можно использовать, менять и встраивать в собственные сборки, что для инструментов разработки часто важнее самой экономии. Открытая лицензия здесь не формальность: команды нередко дорабатывают такие утилиты под свои пайплайны и проверяют, что именно они отключают на машинах сборки.

По той же логике живут и другие открытые инструменты для разработчиков — . Практический смысл в том, что память — самый частый ограничитель при параллельном запуске симуляторов: каждый экземпляр тянет за собой десятки служб, и на 16 ГБ легко упереться в предел. Сокращение с 4 ГБ примерно до 900 МБ на устройство означает, что на той же машине помещается заметно больше виртуальных экранов.

Ограничение простое: утилита не ускоряет сам симулятор и не меняет код приложения, она лишь убирает фоновую обвязку. Если тестируемый сценарий опирается на отключённую службу, её придётся вернуть вручную, и преимущество по памяти соответственно уменьшится. Инструмент бесплатный, исходники открыты, поэтому состав отключаемых служб можно проверить и при необходимости урезать список под себя.

Для команд, где важна воспроизводимость сборок и тестов, это существеннее, чем сам по себе красивый показатель в мегабайтах.

инновации программирование открытый код

Оригинал

Обсуждение

Комментариев пока нет.

Похожие новости