Я работаю над веб-приложением, встроенным в недорогие устройства, и во время рендеринга я выполняю длительные update layer tree
операции.
Я знаю, что update layer tree
— это операция, состоящая в вычислении или перевычислении информации, относящейся к RenderLayers
, обычно потому, что верхний уровень был признан недействительным. Я нашел этот предыдущий пост, который довольно хорошо объясняет это: Chrome DevTools Timeline Update Layer Tree Event а>.
Мое приложение построено вокруг компонентов, и каждый из них может иметь несколько слоев. Если я тестирую свои компоненты по отдельности, все работает нормально, и я получаю отличные результаты (отличный fps, плавная анимация). Теперь, когда я собираю все воедино, выступления разваливаются. То, что я вижу в инструментах разработчика Chrome, длинное UpdateLayerTree
.
Мне было интересно, каковы рычаги для решения этой проблемы? Я предполагаю, что первое очевидное действие — попытаться уменьшить количество слоев во всем приложении. Но вот мои вопросы:
- Является ли количество слоев единственным рычагом для уменьшения UpdateLayerTree? (Например, влияет ли на это размер слоя?)
- Есть ли какие-то трюки, которые запускают быстрый путь рендеринга в Blink, который может избежать или уменьшить операции обновления дерева слоев в некоторых конкретных случаях (я думаю, это относится к встроенному преобразованию?)
- Вы видите что-то еще?
С уважением,
(Кроме того, в качестве примечания, я открыл вопрос в проекте хрома, чтобы получить отзывы об этом некоторое время назад: https://bugs.chromium.org/p/chromium/issues/detail?id=725712.)