Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискСмотриComboВсе проекты

Как Huawei удалось повысить производительность флагманских смартфонов

В сентябре Huawei выпустила флагманскую линейку Mate 30. В ходе презентации производители сделали отдельный акцент на механизме детерминированной задержки (Deterministic Latency Engine) — технологии, которая на треть повышает производительность и на 27% — стабильность работы новых моделей. Чтобы понять, как китайцам удалось достичь таких результатов, придется слегка углубиться в теорию.

Почему Android вообще может тормозить?

В отличие от персональных компьютеров, смартфоны (в силу размеров) имеют относительно скудные аппаратные возможности. При этом мобильные гаджеты должны поддерживать более сложные и динамичные пользовательские сценарии. Система распределения ресурсов, основанная на Linux, не всегда справляется с решением трудных задач — отсюда и низкая производительность гаджетов на Android (ОС основана на ядре Linux). Избавиться от подтормаживаний возможно одним путем: если внести изменения в само ядро Linux и улучшить систему планирования центрального процессора, ОЗУ и ввода/вывода.

Борьба за память. Фото: Huawei

Проблемы с планированием загрузки процессора

Чем эффективнее выполняется планирование загрузки ЦП и распределение приоритетов выполнения приложений, тем плавнее работает мобильное устройство. В Linux (начиная с версии 2.2) есть планировщик, он обеспечивает многозадачность и распределяет ресурсы между различными задачами. Проблема в том, что система планирования загрузки процессора в Linux стремится распределять процессорное время на равных условиях, но для Android-смартфонов такой вариант не подходит. Гаджеты работают в режиме нехватки ресурсов — базовый механизм планирования в этом случае оказывается малоэффективен.

Борьба за память

Быстродействие RAM тоже напрямую влияет на общую производительность смартфона — от нее зависит многозадачность и скорость переключения между приложениями. Но в Android распределение оперативки происходит таким образом, что система в одинаковом порядке обрабатывает все запросы и от открытых, и от фоновых приложений. В итоге сразу все запущенные программы конкурируют за доступ к памяти, и производительность смартфона падает — появляются подтормаживания даже в меню.

Слишком много запросов на ввод/вывод

Почти все выполняемые на смартфоне задачи обращаются к вводу/выводу, чтобы считывать данные из хранилища в ОЗУ и для записи данных обратно на запоминающее устройство. Когда железо не справляется с обработкой всех запросов, последние кэшируются в программной очереди ОС и в аппаратной очереди устройств хранения. Как результат — загруженное мобильное устройство опять же начинает работать заметно медленнее, чем в состоянии бездействия.

Как исправить основные проблемы?

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

В качестве примера разработчики рассказали о распределении ресурсов при запуске «тяжелой» мобильной игры. Благодаря новому механизму все ее сегменты (включая фоновые) временно получают приоритет высокого уровня — сторонние приложения не будут мешать юзеру, пока тот играет.

Скрин из PUBG Mobile, тяжелая мобильная игра. Фото: youtube

Еще одно новшество — модифицированный стек сетевых протоколов (Networking Protocol Stack). Теперь он ограничивает потребление пропускной способности для задач с низким приоритетом: в первую очередь будут выполняться запросы на ввод/вывод от высокоприоритетных программ.

Корректировка приоритетов на основе зависимостей

Почти всегда высокоприоритетная задача зависит от низкоприоритетной. Но ядро Linux не может получить данные о зависимостях между процессами. Проблему опять же решает механизм детерминированной задержки. Он изменяет структуру соответствующих данных, чтобы планировщик загрузки ЦП и ввода/вывода определяли наиболее важные процессы для взаимодействия с юзером в определенный момент. В итоге, получается мгновенное и умное перераспределение ресурсов.

Резервирование ресурсов для прогнозируемых запросов

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

Фото выделенной полосы. Фото: kubnews

Для наглядности разработчики приводят пример с выделенными полосами для общественного транспорта: по ним могут двигаться рейсовые автобусы или экстренные службы. Механизм детерминированной задержки находит «автобусы» среди приложений и оставляет для них «выделенку». Благодаря этому эффективность обработки таких задач повышается, а пользователи избавляются от лагов в критические моменты.

Годы труда

Над созданием механизма детерминированной задержки около двух лет трудились более 200 экспертов из Huawei. За это время разработчики серьезно модернизировали всю систему Android — от фреймворка до ядра. Поэтому сегодня их версия мобильной операционки представляет собой систему с глубокими индивидуальными настройками и усовершенствованными базовыми принципами работы.

Это тоже интересно:

Во время загрузки произошла ошибка.
Поделись с друзьями — нажми на одну из кнопок ниже!
Комментарии
9
Изя Робинович
В ответ на комментарий от Черный Властелин
Черный Властелин
Кастомная голая прошивка и дремучий аппарат начинает новую жизнь без всяких излишних "тормозилок" и украшалок. Только необходимые, поставленные самим юзером проги.
СсылкаПожаловаться
Согласен, нефиг из телефона помойку делать и всё будет хорошо.
СсылкаПожаловаться
Изя Робинович
То не закрывай приложения, это тормозит. То закрывай, а то тормозить будет. Вы уже определитесь, уже. 2 года Galaxy s9+ ношу. Плевать, что закрыто всё, что открыто всё. Всё летает, ничего не тормозит.
СсылкаПожаловаться
Черный Властелин
Кастомная голая прошивка и дремучий аппарат начинает новую жизнь без всяких излишних "тормозилок" и украшалок. Только необходимые, поставленные самим юзером проги.
СсылкаПожаловаться
Deamon
У меня что OnePlus 5, что сейчас OnePlus 7t как не тормозили, так тормозить и не собираются... Может быть из-за того, что компания ставит практически голый Андроид с минимальными добавками? Или используют качественные комплектующие? Не понимаю...
СсылкаПожаловаться
Андрей Моисеев
Может людям из Huawei кинуть ссылок по теории RTOS ?)
СсылкаПожаловаться
Вячеслав
Не знаю что там китайцы модернизировали, я заметил только что в телефонах этого производителя многие фоновые процессы безжалостно режутся.
СсылкаПожаловаться
Дмитрий Деликат
"Linux, не всегда справляется с решением трудных задач" да ладно! Все серваки высокой производительности на Linux. Я считаю проблема производительности из-за архитектуры мобильных процессоров и графических оболочек производителей, делают для WOW эффекта, а не для производительности
СсылкаПожаловаться
Игорь
не о чём
СсылкаПожаловаться
Lexx
заголовки гениальны (по тупости), как всегда
СсылкаПожаловаться
Чтобы оставить комментарий, вам нужно авторизоваться.
Вы не ввели текст комментария
Вы не ввели текст комментария
Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter.
Подпишитесь на нас