我在我们的平台(arm-v8 linux)上尝试过钴浏览器,我发现密钥响应有点慢。在youtube主页上按向上/向下键时,从InjectKeyboardEvent到DoLayoutAndProduceRenderTree需要200ms-400ms,DoLayoutAndProduceRenderTree需要100ms-150ms然后开始渲染。我看到电影行在500ms后开始画画。有什么建议吗?
我尝试将javascript_engine从mozjs更改为javascriptcore,但性能类似。 (我发现javascriptcore默认情况下不启用JIT?)另外我们运行的是钴PC版本,键响应类似,延迟一段时间然后开始滚动。
Cobalt是否有任何性能衡量标准供开发人员检查?如何启用它?
非常感谢。
答案 0 :(得分:0)
Cobalt的非gold
版本具有“调试控制台”HUD,可用于显示实时更新调试值,包括性能测量。 qa
是仍然具有调试控制台的最快构建类型。
可以使用--debug_console=hud
命令行标志启用调试控制台HUD,或者通过按Ctrl-O
在运行时切换。
HUD是一个显示一堆“CVal”(控制台值)的叠加层。这些可以在调试控制台本身中显示或隐藏(类型help
)。特别是,您可能希望启用Event.Duration.MainWebModule
,每次按键时都会更新src/cobalt/browser/web_module_stat_tracker.cc
。请查看layout_benchmarks
以获取有关事件时间变化的描述。
还有一个构建目标-[UIPercentDrivenInteractiveTransition updateInteractiveTransition:]
,用于测试完整布局的非Javascript部分。这与增量布局并不完全相同,显然Javascript(InjectKeyboardEvent)占您的密钥处理成本的大部分,但它可能是整体性能的合适代理,并且在平台之间具有相当的可比性。
JavaScriptCore很快就会被弃用,转而使用SpiderMonkey(a.k.a. mozjs),并从Cobalt树中删除,所以它不是未来探索的途径。
请注意,Linux X11 Cobalt不一定像设备平台一样快,因为X11实现没有特别优化。例如,MesaGL是软件渲染的。视频合成相当粗略,YUV转换也在CPU上完成。