在 cobalt 浏览器上处理 key up/down 的性能

The performance to handle key up/down on cobalt browser

我在我们的平台(arm-v8 linux)上试用了cobalt浏览器,发现按键反应有点慢。在youtube首页按up/down键时,从InjectKeyboardEvent到DoLayoutAndProduceRenderTree需要200ms-400ms,DoLayoutAndProduceRenderTree需要100ms-150ms才开始渲染。我看到电影行在 500 毫秒后开始绘制。对此有何建议?

我尝试将 javascript_engine 从 mozjs 更改为 javascriptcore,但性能相似。 (我发现 javascriptcore 默认不启用 JIT?)另外我们 运行 cobalt PC 版本,按键响应类似,延迟一些时间然后开始滚动。

Cobalt 是否有任何性能测量供开发人员检查?如何启用它?

非常感谢。

gold 版本的 Cobalt 有一个 "debug console" HUD,可用于显示实时更新的调试值,包括性能测量。 qa 是仍然具有调试控制台的最快构建类型。

调试控制台 HUD 可以使用 --debug_console=hud 命令行标志启用,或在运行时按 Ctrl-O 切换。 HUD 是一个叠加层,显示一堆 "CVals"(控制台值)。这些可以在调试控制台本身中显示或隐藏(类型 help)。特别是,您可能希望启用 Event.Duration.MainWebModule ,它会在您每次按下按键时更新。查看 src/cobalt/browser/web_module_stat_tracker.cc 以了解事件计时 CVal 的说明。

还有一个构建目标 layout_benchmarks 可以测试完整布局的非 Javascript 部分。这与增量布局不太一样,显然 Javascript (InjectKeyboardEvent) 是您的大部分按键处理成本,但它可能是整体性能的一个不错的代表,并且在平台之间具有合理的可比性。

JavaScriptCore 很快就会被弃用,取而代之的是 SpiderMonkey (a.k.a.mozjs),并且会从 Cobalt 树中删除,因此它不是一个有很多未来的探索途径。

请注意,Linux X11 Cobalt 不一定与设备平台一样快,因为 X11 实现并未特别优化。例如,MesaGL 是软件渲染的。视频合成做得比较粗糙,在CPU.

上也做了YUV转换