Нужно ли выгружать приложения из памяти ios
Со времен популяризации смартфонов перед пользователями стоит проблема низкой автономности мобильных устройств. Большие сенсорные дисплеи, мощные процессоры, энергозатратные приложения – все это в разной степени способствует быстрой разрядке аккумулятора. «Эксперты» советуют для улучшения производительности и увеличения времени автономной работы вручную закрывать эти самые приложения. В действительности, это один из мифов, который существует со времен первых версий iOS.
Многие пользователи iPhone стремятся выгружать из памяти приложения, запущенные ранее. Конечно, многозадачность работает прекрасно, но зачем занимать лишние мегабайты оперативной памяти? Тем более, ходят слухи, что несколько одновременно запущенных программ отрицательно сказываются на зарядке. В действительности, подобное оказывает на систему абсолютно противоположный эффект. Парадокс состоит в том, что выгрузка приложений из памяти только способствует ускоренной разрядке аккумулятора.
Мифы и реальность
Для начала стоит уяснить, что реализация многозадачности в iOS находится на весьма высоком уровне. Что бы ни говорили ненавистники, «операционка» прекрасно работает даже после запуска пары десятков приложений. Звучит как похвала, но программисты Apple недаром едят свой хлеб. Все разработчики подчиняются единым требованиям по созданию ПО.
Распространен миф, что принудительное закрытие приложений спасет батарею. Не позволяя системе самостоятельно управлять всеми процессами, вы совершаете ошибку. Дело в том, что само действие по вызову режима многозадачности и выгрузке программ из памяти расходует гораздо больше энергии, чем их «работа в фоновом режиме».
Возможно, большинство не поверит и подумают, что это ошибка употреблять термины «фоновые приложения» и «энергоэффективность» в одном предложении. Уверяем, оговорки и прочие погрешности в терминологии исключены. Многозадачность запускается двойным нажатием на кнопку «Домой». А полное закрытие программ осуществляется смахиванием окошка вверх (справедливо для iOS 9).
Когда вы вручную закрываете приложение, операционная система должна выгрузить задачу из памяти, что приводит к расходованию заряда батареи. При повторной загрузке этого же приложения системе снова нужно загрузить его в ОЗУ, что также обернется энергозатратами. Таким образом, принудительно закрывая приложения вы дважды расходуете заряд аккумулятора. Находясь же в оперативной памяти устройства, оно никак не влияет на его автономность.
Как работает многозадачность в iOS
Всего у приложений в iOS есть пять типов состояний:
- Нерабочее — работа приложения была прекращена или оно не было запущено.
- Неактивное — приложение в активном режиме, но не получает событий (например, пользователь заблокировал экран).
- Активное — нормальное состояние приложения в режиме использования.
- Фоновое — приложение скрыто, но исполняет код.
- Приостановленное — приложение находится в памяти, но не исполняет код.
Активное и неактивное для данной темы неинтересны. Большинство путается в ситуациях, когда приложение переходит из активного в фоновое, потом в приостановленное, а затем в нерабочее.
Когда вы нажимаете кнопку Домой, программа переключается из активного в фоновое. Большинство приложений через нескольких секунд после этого переходят в приостановленное. Первый технический нюанс заключается в том, что приостановленное приложение остается в памяти устройства. Это сделано для того, чтобы оно могло продолжить работу быстрее, если вы решите к нему вернуться. При этом оно не использует ресурсы процессора и батарею.
Можно предположить, что если ПО находится в памяти, то его нужно удалить оттуда для освобождения ресурсов. В действительности, iOS делает это самостоятельно. Если у вас есть приостановленное приложение и вы запускаете ресурсоемкий софт, например сложную трехмерную игру, iOS сама выгружает из памяти приостановленную программу и перемещает ее в Нерабочее состояние. Другими словами она будет полностью удалена из ОЗУ и запущена с нуля при следующем запуске.
Выводы
Главное правило многозадачности iOS звучит следующим образом: панель многозадачности является лишь списком недавно использованных приложений, вне зависимости от того, в каком состоянии они находятся. Операционная система самостоятельно выгружает задачи – тогда, когда это необходимо.
В каких случаях следует закрывать приложения и освобождать оперативную память устройства? Ответ прост – в теории никогда. Крайне редко случаются ситуации, которые должны заставить вас перезапустить программу. Разве что зависания или некорректная работа. Вероятно, в это трудно поверить, но iOS сама прекрасно справляется с распределением нагрузки на процессор и аккумулятор. Продукция Apple – это техника, которой просто нужно пользоваться, не создавая себе лишних сложностей.
Ответ от главного разработчика Apple Крейга Федериги по поводу принудительного закрытия приложений в iOS.
Мы регулярно обсуждаем варианты продления времени автономной работы мобильных устройств Apple. Тема поднималась не раз, не два, и даже не три. Связанный с этим миф выглядит так: нужно принудительно закрывать приложения из меню быстрого запуска и iPhone будет работать дольше. Речь об этом меню:
И в понимании Apple это утверждение не имеет ничего общего с алгоритмом работы системы. Читатель одного популярного зарубежного издания посвященного компании Apple, задал конкретный вопрос конкретному человеку. Вернее, двоим.
Некто Калеб задал вопрос напрямую генеральному СЕО Apple Тиму Куку:
Скажи, ты принудительно закрываешь приложения из меню мультизадачности в iOS и нужно ли это делать?
P.S. Я поддерживаю вас в разбирательстве с ФБР.
К сожалению, Тим Кук не ответил на поставленный вопрос, но на этом история не окончилась и через сутки на почтовый ящик читателя пришло письмо из Apple.
Отвечает старший президент по разработке программного обеспечения компании Apple Inc, Крейг Федериги:
Я знаю, ты задавал вопросу Тиму. Вот что могу сказать я:
Скажи, ты принудительно закрываешь приложения из меню мультизадачности в iOS и нужно ли это делать?
Спасибо что остаетесь с Apple!
Коротко и понятно.
Почему не нужно закрывать приложения
Большинство приложений, после сворачивания в меню многозадачности (а оно попадает туда сразу после однократного нажатия клавиши Home), автоматически приостанавливает свою работу. Происходит как бы «заморозка» в оперативной памяти.
В таком состоянии приложение попросту не может расходовать аккумулятор смартфона, поскольку iOS полностью блокирует его работу. Пользователь же видит лишь фотографию последнего актуального меню приложения и лишь после повторного запуска из меню многозадачности оно возобновляет свою работу.
Вывод: Принудительное закрытие необходимо лишь в том случае, когда вы хотите «оживить» зависшее приложение. На время автономной работы iOS-девайса оно никак не влияет. [9to5]
Иван Петров
Geekbench 5 для iOS прямо сейчас раздают бесплатно. Было 99 рублей
Производителей смартфонов обяжут получать «явный отказ» пользователей от установки российских приложений
Google прекращает поддержку Ассистента на iOS для беспроводных наушников
AR-шлем от Apple получит два процессора и сравняется по мощности с Mac
Банк России считает криптовалюты угрозой для российского рынка
Как в iOS 15 редактировать PDF-файлы. Сторонние приложения больше не нужны
25 джейлбрейк твиков из Cydia, которые стоит перенести в iOS
🙈 Комментарии 53
@GermanBoy , в почтовой программе не проще?
@Alex318i , в хтмл редакторе не проще?
В ворде не проще? В блокноте проще всего. Хоть в чем можно;)
@Seva2006 , Не нужно!:) Не выгружайте! Не делайте этого! Не убирайте приложения:) Ответ: НЕТ.
Простите, может пример и глупый, но отражает «на пальцах» принцип работы системы iOS.
Постараюсь объяснить все не сложно, но и не на холодильниках.
При нехватке памяти происходит следующее:
1. Система рассылает активным приложениям уведомление о том, что памяти мало. Приложения в ответ должны освободить все временные ресурсы.
2. Если памяти по-прежнему мало, выгружаются из памяти неактивные приложения.
3. Если активное приложение продолжает просить больше памяти, чем система может освободить и выделить, происходит то самое принудительное завершение активного приложения.
@burditto , про геолокацию действительно могу и соврать, не работал с ней почти. Но вот обработчик push-уведомлений совершенно точно не вызывался у насильно выгруженного приложения как минимум на iOS 8. То же самое с background fetching. В iOS 9 все изменилось, Вы проверяли?
Про виджеты и часы отдельная история, там без запущенного приложения не обойтись. И это опять таки на тему приложений, которые вредно убивать через меню многозадачности.
Ты принудительно жухаешь Крейга, кода он беспокоит тебя тупыми вопросами и переводит стрелки на тебя чтобы ни за что не отвечать самому?
Пока бренды не займутся вопросом радикального увеличения активного времени работы смартфонов, рядовые владельцы гаджетов будут проявлять интерес к разного рода народным советам. Один из них гласит, что приложение мало закрыть, надо еще и непременно выгрузить его из памяти iOS. Именно об этом мы и поговорим.
Видео:
Толкование распространенного «лайфхака»
Закончив работу с приложением, мы привычным жестом тапаем дважды по кнопке Домой или используем соответствующий жест на iPhone с Face ID, сворачивая окошко программы. Однако она все еще продолжает висеть в памяти, запускает процессы и наглым образом потребляет ресурсы системы. С целью экономии последних и рекомендуется вручную убрать «иждивенца» и закрываем – по нашей команде iOS принудительно выгрузит из оперативной памяти все пакеты данных, связанные с данным ПО. Нагрузка на систему снизится, а количество потребляемой ею энергии пропорционально уменьшится. Логично, не так ли? Только отчасти неверно.
Алгоритм работы многозадачности iOS
Лектор и педагог Фрейзер Спирс (Fraser Speirs) предлагает следующее объяснение из категории «для чайников» (это подтверждено Apple официально). Любое приложение в яблочной мобильной ОС в конкретный момент времени пребывает в одном из пяти состояний.
- Не работает. Период между полным отключением программы и до следующего запуска, во время которого система никак с ней не взаимодействует. Расхода заряда батареи, естественно, нет.
- Запущено, но неактивно. Имеет место при блокировке экрана без сворачивания текущего окна. Софт занимает энный объем ОЗУ, однако процессор не активен и энергия на его эксплуатацию не тратится.
- Активно. Полноценная работа с приложением, во время которой наблюдается максимальное использование системных ресурсов.
- Фоновый режим. Окошко закрывается, однако ряд служб продолжает работу, например, поиск и закачку обновлений. Нагрузка на гаджет полноценная, однако iOS ставит таким процессам минимальный приоритет, перераспределяя ресурсы в пользу приложений, который активны.
- Закрытое. Обмен данными между программой и системой прекращен, однако сама она остается в оперативной памяти. На это не тратится сколько-нибудь значимого объема энергии, iOS просто делает «закладку», что позволяет значительно ускорить загрузку приложения при повторном обращении к нему через панель многозадачности.
Закончив работу с программой, мы нажимаем кнопку Домой или применяем соответствующий жест на iPhone с Face ID – из «Активного состояния» она тут же перемещается в «Фоновый режим».
При наличии действующих служб она повисит так, пока они не закончат выполнять свои задачи, после чего последует принудительный переход в «Закрытое состояние». Он произойдет в любом случае – iOS выжидает несколько секунд и если нет фоновой активности, автоматически выполняет данную процедуру.
Теперь наше приложение не создает нагрузку на систему, но все еще занимает мегабайты ОЗУ. Когда они становятся востребованы, например, при запуске чего-то тяжеловесного, iOS самостоятельно очистит требуемый объем памяти. А программу переведет в состояние «Не работает», чем полностью исключит использование ею системных ресурсов, включая и драгоценную электроэнергию.
Что происходит, когда человек решает вмешаться
Визуально «Фоновый режим» от состояния «Закрыто» никак не отличить — для этого потребуются специальные утилиты, детально анализирующие активность в iOS. Однако иконка, всего лишь картинка, продолжает висеть в меню многозадачности, сбивая пользователя с толку. С его субъективной точки зрения приложение все еще работает, читай, потребляет системные ресурсы. Это требуется пресечь – человек упирает палец в экран, тем самым вынуждая iOS отреагировать.
Для приложения, которое давно значится «Закрытым» и фактически не взаимодействует с процессором, запускается отдельный сеанс принудительной выгрузки из памяти. Длится он всего ничего, но это нагрузка на систему, влекущая за собой расход энного количества ресурсов. На секунду замедлится работа иных программ, аккумулятор расстанется с толикой заряда, а когда пользователь захочет снова запустить это же приложение, все повторится опять – данных-то в памяти уже нет, их нужно подгрузить.
В итоге получается, что ручная выгрузка приложений позволяет высвободить занимаемую ими память, но провоцирует дополнительный расход заряда батарей. То есть, получаем эффект, полностью противоположный ожидаемому. Если речь идет о востребованном софте, то комбинация из постоянных «запуск + параноидальное закрытие» провоцирует совершенно бессмысленный перерасход ценного ресурса без какой-либо ощутимой пользы. Именно так – iOS автоматически перераспределяет память по оптимальной схеме, не перегружая процессор, но для взаимодействия с пользователем обязана активировать не в пример более громоздкий и прожорливый оконный интерфейс. Один вывод изображения меню на экран с подсветкой чего стоит.
Пример на пальцах: идем на кухню, наливаем из графина в чашку сок, ставим емкость обратно в холодильник, сами возвращаемся в гостиную. Сделав несколько глотков, можем отставить чашку, но раз прямо сейчас она не нужна, то снова идем на кухню и выливаем недопитую жидкость в графин. А то вдруг еще рука устанет держать посудину на весу, опять же, силы будут тратиться. Но пить-то хочется – спустя какое-то время процедуру придется повторить, снова и снова. Не слишком разумно, не так ли? Так пусть полупустая чашка с соком постоит себе в стороне, не занимая при этом ни место в руке, ни мыслей, но зато уже не придется бегать туда-сюда. Иное дело, если захочется чаю – вот тогда имеет смысл пойти на кухню и потрудиться вымыть чашку, подготовив ее для иной цели.
Действенный метод экономии системных ресурсов
Формально в «Фоновом режиме» приложение обязано пребывать недолго, однако определенные категории софта злоупотребляют своими полномочиями. Отчасти из-за халатности разработчиков, но чаще так сделано сознательно. Например, приложение Mail, настроенное на моментальные Push-уведомления, никогда не переключается в «Закрытое состояние». Львиная доля софта обожает без всякого спроса мониторить материнские сайты в поисках обновлений, а каждый пустопорожний сеанс связи приводит к активации ряда модулей устройства и тратам энергии.
Для того чтобы пресечь это безобразие, в iOS и был введен механизм ограничения на эксплуатацию системы приложениями в фоновом режиме. Разрешить им выходить в Интернет только при установке в док-станцию – отличная идея. Еще для экономии ресурсов целесообразно выставить в настройках доступ к Сети в неактивное время суток, когда человек спит.
Энергия будет экономиться косвенно, за счет того, что нет необходимости использовать экран и отвлекать процессор на приоритетную обработку данных в активном окне. В этом отношении iOS всецело зависит от грамотного пользователя – пробежаться после установки софта по меню и выбрать, какому приложению давать зеленый свет, а какому красный, система с должным уровнем эффективности не сумеет.
Ну и конечно же, не забудьте правильно настроить уведомления на iPhone и iPad.
Для многих это стало привычным ритуалом благодаря распространённому мнению, будто свернутые приложения продолжают работать в фоне, разряжая аккумулятор iPhone. Соответственно, чтобы продлить работу устройства, по такой логике нужно периодически вручную закрывать приложения.
В этой статье вы узнаете, почему такая точка зрения — не более чем миф.
Как работает многозадачность в iOS
Любое приложение в iOS имеет пять возможных состояний:
Не запущено. Приложение не запущено, никаких процессов не происходит, а значит, и расхода заряда батареи нет.
Активно. Приложение запущено, максимально используются системные ресурсы.
Неактивно. Такое происходит, когда при запущенном приложении устройство переходит в спящий режим или блокируется экран. В этом случае энергия не расходуется.
Фоновый режим. Приложение свёрнуто, но некоторые процессы продолжают работать. Например, загружаются обновления. Подобным процессам iOS ставит минимальный приоритет и направляет ресурсы на активные приложения.
Остановлено. Все процессы остановлены, но приложение остаётся в оперативной памяти. Оно не потребляет энергию и используется для быстрой загрузки приложения из панели многозадачности.
Во время работы с приложением оно находится в состоянии «Активно». Когда вы нажимаете на кнопку «Домой», приложение сворачивается и переходит в «Фоновый режим». А очень скоро оно вовсе завершает текущие задачи и переходит в «Остановлено». В таком состоянии оно не потребляет энергии, но позволяет системе быстрее запустить его повторно.
Почему не стоит самостоятельно закрывать приложения
Таким образом, приложения в Панели многозначности — не более чем ярлыки, которые помогают быстрее вернуться в запущенное ранее приложение. Они не отображают запущенные в данный момент процессы, не потребляют энергию, а их удаление не увеличивает автономность.
Скорее наоборот: системе приходится больше тратить ресурсов, чтобы заново запустить приложение, чем подгрузить его из многозначности. В итоге получаем эффект, полностью противоположный ожидаемому. Постоянно открытие и закрытие приложений в течение дня приводит к бессмысленному перерасходу ресурса без какой-либо пользы.
Какие приложения стоит закрывать
Большинство приложений недолго пребывают в «Фоновом режиме» и переходят в «Остановлено». Однако есть категории приложений, которые постоянно остаются активны в «Фоновом режиме», потребляя ресурсы и трафик.
К таким можно отнести навигационные и музыкальные
приложения, те, что постоянно запрашивают местоположение устройства и проверяют актуальность контента.
Подобные приложения стоит сразу закрывать после использования, так как они требуют много энергии и трафика.
Заключение
Теперь вы знаете, что постоянно выгружать приложения из Панели многозадачности бессмысленно. Система iOS достаточно умная, чтобы самостоятельно позаботиться о себе.
Такого же мнения придерживается вице-президент компании Apple по программному обеспечению Крейг Федериги.
Читатель 9to5Mac заинтересовался, стоит ли закрывать приложения в Панели многозадачности. С этим вопросом он обратился к главе компании Тиму Куку.
Как часто ты закрываешь приложения в Панели многозадачности iOS, и поможет ли это сэкономить заряд батареи? Просто хочу, чтобы ты остановил этот спор!».
На этот вопрос ему ответил старший вице-президент Apple по программному обеспечению Крейг Федериги.
«Привет, Калеб.
Я знаю, что ты спрашивал Тима, но я могу вставить свои пять копеек. Нет и еще раз нет,» — ответил Федериги.
Читайте также: