在 chrome://tracing 中手动加载 json

Posted

技术标签:

【中文标题】在 chrome://tracing 中手动加载 json【英文标题】:Load json manually in chrome://tracing 【发布时间】:2018-08-15 07:19:41 【问题描述】:

我有一个跟踪事件 JSON 数据,我想使用 chrome://tracing 查看它。但是,我不想每次都加载 JSON。

有没有办法可以将 JSON 数据传递给 chrome://tracing,这样无需手动单击加载数据,我的所有数据都会被加载?

【问题讨论】:

【参考方案1】:

Trace-viewer 工具目前以 3 种方式加载 JSON 文件:

记录新轨迹时 选择文件后通过加载按钮加载文件时 将文件拖放到选项卡时(拖放)

所有这些都对活动跟踪进行一次性更新。


技术细节

查看profiling_view 并注意

 tr.ui.b.readFile(file).then(
 ...
    this.setActiveTrace(file.name, data);

以及从 beginRecording 、 onLoadClicked_ 和 dropHandler_ 调用 setActiveTrace 的一些变化。


解决方案建议

是的,有几种方法可以将 json 数据传递给 chrome://tracing(即跟踪查看器),而无需手动单击加载数据

取决于你想付出多少努力:

    不要手动点击加载而是拖放文件 基于监视 JSON 文件更改的脚本自动拖放 (example with selenium) 根据文件更改自动加载 Contribute to Trace Viewer yourself 并添加此功能。请参阅 the tracing ecosystem explainer 和 contributing。请注意,它现在是 GitHub 中 Catapult 项目的一部分。

见fswatch - a cross-platform file change monitor.

【讨论】:

【参考方案2】:

这是一个解决方案,如果您可以放宽必须使用 Chrome-Tracing 打开它的要求。 Speedscope 是一个不错的替代品,可以从命令行轻松启动。

为了离线使用,或者在终端方便,也可以通过npm安装speedscope:

npm install -g speedscope

调用 speedscope /path/to/profile 将在您的默认浏览器中加载 speedscope。 Source

speedscope <my-chrome-tracing.json> 打开文件。

Speedscopes 提供不同的视图,但有时与 Chrome-Tracing 的视图不同。所以它可能不是所有用例的正确选择。

【讨论】:

轻巧快捷,推荐,speedscope.app 也便于安装!【参考方案3】:

this GopherCon video 显示了我猜的另一种解决方案,即在浏览器中加载一个 html 页面,其中可能嵌入了 javascript,它“加载”了跟踪文件。虽然我怀疑不是来自磁盘文件,而是通过自定义 http 服务器直接“提供”它。

【讨论】:

以上是关于在 chrome://tracing 中手动加载 json的主要内容,如果未能解决你的问题,请参考以下文章

关于BenchMark/c++11计时器/Chrome:tracing 问题

android 常见问题解决方法(持续更新中....)

在模拟器中手动安装的应用程序在加载时崩溃

手动/动态地将数据加载到树形面板中?

Android性能优化之Systrace工具介绍 _&& Systrace生成的trace.html打开空白或者打不开的解决办法

在 VB.Net 中手动加载 Reportviewer 中的 .rdlc 报告