Коллективные обновления в iOS 7: Наконец-то все писают одновременно

Встретил очень остроумное, простое и понятное объяснение одной из новых фишек iOS 7 — “коллективные обновления” (coalesced updates). Эта штука должна повысить эффективность использования сетевых подключений и увеличить время работы телефона от аккумулятора. Я думаю, аналогия вам понравится.
TDF2008-FRA-CYCLING-FEATURE
————-
“Ну что, время всем сходить в туалет”, говорил мой папа во время наших автопутешествий. “Но мне не надо!” раздавалось неизбежное нытье от (как минимум) одного из нас. Папин ответ всегда был один и тот же: “А это не был вопрос”.

Мой папа всегда фокусировался на том, чтобы максимизировать эффективность, конечно же. Вместо того, чтобы останавливаться для того, чтобы пописал только один человек и продолжить путь, вполне разумно было бы, чтобы все писали во время каждой остановки. Это, как минимум, предотвращает неизбежную неэффективность, появляющуюся десять минут спустя, когда следующий человек начинает чувствовать зов природы.
Как бы очевидно это не звучало, iOS всегда работала по самому неэффективному методу в этом случае, как минимум, до выхода iOS 7 и приложений, для нее разработанных. На данный момент, если какому-то приложению нужно получить доступ в сеть, оно сразу его и получает. Когда это приложение закончило свои дела и через две минуты другому приложению нужна сеть, то это приложение получает доступ, и так далее.
Проблема в том, что пробуждение приложения и выход в сеть — энергетически затратный процесс. Раз уж есть открытое сетевое подключение, есть смысл использовать его по максимуму, а затем закрыть его (и, если возможно, то и приложения, которые его используют). Именно это и обеспечат коллективные обновления в iOS 7. Программы скоро смогут зарегистрироваться в операционной системе и сказать “Эй, я бы хотела выйти в сеть еще раз примерно через час. Мне ничего не надо на протяжении примерно 45 минут, но в любой момент после этого и в промежутке до одного часа, мне было бы круто выйти в онлайн”. Операционная система затем изучает все эти запросы и решает, когда же будет лучшее время для выхода в онлайн. И когда этот момент наступит, система предупредит все эти приложения, что подключение установлено и скажет им, что настало время обработать их запросы. И как с вышеупомянутыми остановками во время автопутешествий, это будет не вопрос.
Конечно же, пользователь может (сам того не зная) запустить этот процесс. Если вы разблокируете iPhone и откроете Safari, чтобы посмотреть веб-страничку, iOS 7 заметит это и скажет: “эй, похоже, что у нас тут открытое сетевое соединение. Все просыпайтесь и… делайте свое дело”.
Наконец-то в iOS 7 мы сможем получить умные фоновые обновления, которыми будут обеспечены все приложения, в том числе и сторонние. Это означает, что если вы используете какой-то альтернативный почтовый клиент, к примеру, он сможет проверять почту в фоне точно так же, как делает это встроенное приложение Mail.app. И лучшее из этого всего, что аккумулятор iPhone, скорей всего, будет работать дольше благодаря тому факту, что все сетевые запросы этих приложений будут координироваться с максимальной эффективностью. Точно так же, как координировали нас, детишек, во время автопутешествий.
Оригинал


Discover more from alexmak.net

Subscribe to get the latest posts sent to your email.

8 thoughts on “Коллективные обновления в iOS 7: Наконец-то все писают одновременно

  1. Хм. А не приведет ли это к тому, что я, например, включаю аппарат, чтобы посмотреть что-то в браузере, а при этом куча приложений ломится в сеть и забивает не такой уж и широкий канал? (Понятно, что с Wi-Fi такой проблемы не будет.)

  2. Вот точно так нынче настольные компьютеры работают. Ты его будишь чтоб быстренько почту посмотреть, а он полудохлый, крутит песочные часы и разноцветные шарики пока 100500 желающих процессов “сделают большое дело”. Мне олдскульный подход Apple нравился больше – любая активность пользователя имеет высший приоритет. Всем Смирно! Стоять, не дышать, есть глазами Хозяина!

    • С грамотным подходом новый вариант будет эффективнее. Когда пользователь включает браузер то первым делом предоставлять весь канал ему, а если потом видно что сеть не используется, но и телефон не заблокирован (например пока пользователь читает открытую страницу) – давать сигнал приложениям что они могут попользоваться инетом.

  3. 1. Как уже сказали – трмоза при разблокировке.
    2. У всех моих знакомых на айфонах постоянно запущен скайп. Интересно, он что, тоже будет в сеть “раз в 45 минут” выходить, или всё-таки почаще?

  4. А с какой частотой система подключается к сети, чтобы проверить на наличие push notifications? Мне кажется, это достаточно часто для любого приложения, которому надо залезть в сеть. Ни о каких 45 минутах тут и речи нет.

  5. Это в случае, если разработчики приложений будут великодушно заявлять “мне эта… надо через 45 минут или через час”. Но проще сказать сразу “эй, дай сюда сеть” и все. Кто будет проверять энергоэффективность приложений против заявленной фичи в системе?

Leave a Reply to Andrey SetskoCancel reply