Клавиша двигалась слишком медленно при тестировании с https://qual-e.appspot.com

При тестировании с https://qual-e.appspot.com с версией cobalt rc_11 ключ перемещается слишком медленно (5 с+), иногда фокус вообще не может двигаться, сложно протестировать страницу, после проверки загрузки процессора MainWebModule использует 98% ЦП, так что есть ли способ улучшить его?

1> Использование ЦП MainWebModule составляет 98% при перемещении фокуса

Использование ЦП

2> Журнал трассировки при перемещении фокуса

Что делает MainWebModule?

3> трассировка вызова UpdateComputedStylesAndLayoutBoxTree

[cobalt]>       cobalt::layout::UpdateComputedStylesAndLayoutBoxTree() [0xcad0a0]
[cobalt]>       cobalt::layout::LayoutManager::Impl::DoSynchronousLayout() [0xc919b4]
[cobalt]>       cobalt::dom::Document::DoSynchronousLayout() [0x2c3fe8]
[cobalt]>       cobalt::dom::HTMLElement::offset_width() [0x2ec704]
[cobalt]>       cobalt::dom::(anonymous namespace)::get_offsetWidth() [0xecf80c]
[cobalt]>       js::Invoke() [0xa55a60]
[cobalt]>       js::Invoke() [0xa56348]
[cobalt]>       js::InvokeGetter() [0xa564e0]
[cobalt]>       js::BaseProxyHandler::get() [0x9ee84c]
[cobalt]>       js::Proxy::get() [0x9f47f0]
[cobalt]>       js::GetProperty() [0xa45c74]
[cobalt]>       Interpret() [0xa4b578]
[cobalt]>       js::RunScript() [0xa557c8]
[cobalt]>       js::Invoke() [0xa55b24]
[cobalt]>       js::Invoke() [0xa56348]
[cobalt]>       JS::Call() [0x931614]
[cobalt]>       cobalt::dom::MozjsEventListener::HandleEvent() [0xeb448c]
[cobalt]>       cobalt::dom::EventListener::HandleEvent() [0x338e30]
[cobalt]>       cobalt::dom::EventTarget::FireEventOnListeners() [0x2d7e40]
[cobalt]>       cobalt::dom::Node::DispatchEvent() [0x3100fc]
[cobalt]>       cobalt::dom::Window::InjectEvent() [0x322e80]
[cobalt]>       cobalt::browser::WebModule::Impl::InjectInputEvent() [0x850ac]
[cobalt]>       cobalt::browser::WebModule::Impl::InjectKeyboardEvent() [0x863d0]
[cobalt]>       base::internal::Invoker<>::Run() [0x8db04]
[cobalt]>       MessageLoop::RunTask() [0xc1e3c]
[cobalt]>       MessageLoop::DeferOrRunPendingTask() [0xc2c50]
[cobalt]>       MessageLoop::DoWork() [0xc3994]
[cobalt]>       base::MessagePumpDefault::Run() [0xc8ca8]
[cobalt]>       MessageLoop::RunInternal() [0xc4ca8]
[cobalt]>       base::RunLoop::Run() [0xd9438]
[cobalt]>       MessageLoop::Run() [0xc1708]
[cobalt]>       base::Thread::ThreadMain() [0xf4df0]
[cobalt]>       base::(anonymous namespace)::ThreadFunc() [0xf2984]
[cobalt]>       (anonymous namespace)::ThreadFunc() [0x11525c]

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

[cobalt]>       cobalt::layout::UpdateComputedStylesAndLayoutBoxTree() [0xcad0a0]
[cobalt]>       cobalt::layout::Layout() [0xcae0cc]
[cobalt]>       cobalt::layout::LayoutManager::Impl::DoLayoutAndProduceRenderTree() [0xc929d4]
[cobalt]>       base::Timer::RunScheduledTask() [0xf6b40]
[cobalt]>       base::BaseTimerTaskInternal::Run() [0xf6f54]
[cobalt]>       MessageLoop::RunTask() [0xc1e3c]
[cobalt]>       MessageLoop::DeferOrRunPendingTask() [0xc2c50]
[cobalt]>       MessageLoop::DoDelayedWork() [0xc2d80]
[cobalt]>       base::MessagePumpDefault::Run() [0xc8ccc]
[cobalt]>       MessageLoop::RunInternal() [0xc4ca8]
[cobalt]>       base::RunLoop::Run() [0xd9438]
[cobalt]>       MessageLoop::Run() [0xc1708]
[cobalt]>       base::Thread::ThreadMain() [0xf4df0]
[cobalt]>       base::(anonymous namespace)::ThreadFunc() [0xf2984]
[cobalt]>       (anonymous namespace)::ThreadFunc() [0x11525c]
[cobalt]>       <unknown> [0xb6612e84]
[cobalt]>       <unknown> [0xb6612e84]

person bitchainer    schedule 20.07.2017    source источник
comment
Я это проверю.   -  person Daniel Juyung Seo    schedule 20.07.2017
comment
Хорошо работает на qa build. Какой тип сборки вы тестировали?   -  person Daniel Juyung Seo    schedule 20.07.2017
comment
привет, Даниэль, как qa build, так и gold build могут воспроизвести это.   -  person bitchainer    schedule 21.07.2017
comment
привет, dnaiel, так есть ли какие-либо предложения, которые мы можем проверить, почему фокус перемещается слишком медленно?   -  person bitchainer    schedule 21.07.2017
comment
привет, Даниэль, я получил журнал трассировки при перемещении фокуса, вы можете видеть, что поток MainWebModule продолжал выполнять макет примерно каждые 15,167 мс, что может привести к высокой загрузке процессора и отсутствию ответа на ключ.   -  person bitchainer    schedule 21.07.2017
comment
привет, dnaiel, после добавления некоторых журналов показалось, что cobalt::layout::UpdateComputedStylesAndLayoutBoxTree() вызывается из js на тестовой странице, так что это проблема самой страницы?   -  person bitchainer    schedule 21.07.2017
comment
Я просто воспроизвел это. Мы изучим этот вопрос.   -  person Daniel Juyung Seo    schedule 25.07.2017
comment
привет, Даниэль, я только что переместил эту проблему на страницу отслеживания проблем для лучшего обсуждения и отслеживания, пожалуйста, помогите сослаться на нее, спасибо. issuetracker.google.com/issues/64012090   -  person bitchainer    schedule 25.07.2017


Ответы (1)