Тайна зависания пикселей раскрыта: виноват ли Google в вашем разочаровании?

TLDR

  • Пользователи Pixel сообщают о постоянных проблемах с подтормаживанием изображения, особенно при прокрутке приложений.
  • Разработчик ядра Android обнаружил, что проблема связана с неправильной функцией в коде драйвера exynos_bts Tensor, что приводит к проблемам с управлением пропускной способностью на устройствах Pixel.
  • Он предложил решение, которое могло бы решить проблему, но Google следует обратить на это внимание.

Как энтузиаст технологий, я уже довольно давно сталкиваюсь с раздражающей проблемой заикания дисплея при прокрутке приложений на моем устройстве Pixel. Эта постоянная проблема висит в Issue Tracker Google без особого прогресса. Хотя Google признал проблему, они пока не предоставили решения. Вместо этого они продолжают отмечать наши жалобы как дубликаты и закрывать их, предлагая нам попробовать более новые сборки Android. Однако эта проблема, похоже, усиливается, особенно в сборках Android 16 Developer Preview и beta 1.

Похоже, разработчик наконец-то раскрыл причину проблем с подтормаживанием, с которыми сталкиваются телефоны Pixel.

Как сообщает Piunikaweb, Султан Альсаваф, признанный разработчик ядра Android, согласно своим выводам, связывает проблему с тем, как управляется пропускная способность на устройствах Google Pixel.

Техническая разбивка представлена ​​на снимке экрана ниже, но позвольте мне предложить аналогию для более легкого понимания: представьте свой смартфон как шумный офис, где многочисленным сотрудникам (приложениям и процессам) необходимо совместно использовать ограниченные рабочие пространства (ограниченные ресурсы устройства, такие как пропускная способность). Если эти сотрудники не смогут по очереди использовать рабочее пространство или эффективно общаться, может возникнуть хаос, что приведет к снижению производительности. В этом сценарии «сотрудники» представляют собой различные компоненты системы вашего смартфона, пытающиеся использовать пропускную способность.

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

Как аналитик, я обнаружил проблему в нашей системе, в частности, с функцией `bts_update_bw()`. Вместо использования соответствующего механизма блокировки (`mutex_lock`), который обеспечивает последовательный доступ к рабочему пространству только одного работника в данный момент, он использовал более мягкую блокировку (`btsdev->lock`). Эта менее строгая блокировка не могла регулировать одновременную работу, что приводило к ситуации, когда все работники были активны одновременно, вызывая путаницу и беспорядок.

По словам разработчика, телефоны Pixel с трудом определяют требования к пропускной способности для каждого приложения, что в свою очередь приводит к замедлению работы системы или ее зависанию во время прокрутки или использования приложений.

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

Разработчик переслал свои предлагаемые изменения кода в Google и внес необходимые исправления в свое пользовательское ядро, предоставив исправление специально для пользователей Pixel 8. Однако использование пользовательских ядер несет в себе некоторые риски, такие как потенциальная потеря данных или даже повреждение вашего устройства без возможности ремонта. Следовательно, в конечном итоге Google должна включить исправление в обновление для всех своих пользователей. Мы надеемся, что Google признает предложенное разработчиком решение и тщательно протестирует его, чтобы определить, эффективно ли оно решает проблему.

Смотрите также

2025-02-04 08:18