@condenast/perf-timeline-cli

中文文档
0.1.3发布于 2018/04/08Apache-2.0CommonJS近 30 天下载 3136

通过命令行接口生成 Chrome 性能时间线

中文使用文档
文档目录15 节
  1. 演示
  2. 动机
  3. 先决条件
  4. 安装
  5. 使用量
  6. 图标
  7. generate
  8. 立场
  9. 启动选项
  10. 网络模拟选项
  11. 设置 CPU 调速率选项
  12. 跳转到选项
  13. 追踪选项
  14. 谢谢
  15. 贡献者

Perf 时间线 CLI

生成 Chrome 性能时长的命令行接口 .

License GitHub package version Build status Coverage status Dependencies Dev Dependencies

自豪地建造了:

演示

生成一个时间表, 看看有多少 版式 并使用 大号。 。 。 .

Command line demo SVG

动机

Chrome DevTools 的性能面板是用于创建页面加载时限的行业标准 了解一个网站是如何形成的。 能够点击几个按钮生成一个 时间线, 从命令行创建一个性能时间线, 将功能扩展为适应 不同的工作流程.

在建立这个工具之前,我在从Chrome产生时间表时,遇到了一些问题 DevTools 性能面板.

  1. UI有时缓慢而无反应,特别是在调试CPU使用率高的站点时.
  2. 由于一些站点的构造方式,很难获得"干净"的时间表. 如果装入 a 页面,然后点击“启动剖析并重新装入页面”按钮,您的时间表往往包括跟踪 卸下当前页面的事件.
  3. 在方案方面不可能产生时间表。 例如,当试图找到 性能回归, 您可能想要为项目的最后 10 个构建创建时间表 . 这项任务需要DevTools内部大量额外的UI步骤.

Perf 时间线试图通过提供快速接口生成来改善开发者的经验 执行时间表.

先决条件

Perf Timeline CLI要求节点8+和当前版本的Chrome来查看所生成的时间表.

安装

npm install -g @condenast/perf-timeline-cli

使用量

使用默认生成一个性能时长

perf-timeline generate https://www.wired.com

在拖动网络时生成一个性能时间表

perf-timeline generate https://www.wired.com \
  --emulate-network-conditions \
  --latency 150 \
  --upload-throughput 0.75 \
  --download--throughput 1.6

拖动 CPU 时生成一个性能时间表

perf-timeline generate https://www.wired.com \
  --set-cpu-throttling-rate \
  --rate 4

生成带有截图的性能时间表

perf-timeline generate https://www.wired.com \
  --screenshots

生成一个性能时间表并保存到自定义位置

perf-timeline generate https://www.wired.com \
  --path ~/my-timeline.json

图标

generate

generate 为传递到命令的 URL 创建性能时间表 。 时间轴已保存 作为 trace.json 在当前目录中。 时间条件可以使用 理由如下.

立场

  • url (需要;没有默认) - 用于生成性能时间表的 URL

启动选项

发射选项传递给 puppeteer.launch() 命令。 目前并非所有选项 已支持。 支持的选项如下。 详情请参见 傀儡 文档。 。 。 .

  • --ignore-https-errors (可选; false- 什么时候 --ignore-https-errors 通过, 一个 HTTPS 错误将被忽略 。 这导致Chrome遇到 HTTPS 问题时出现默认错误行为 将被忽略.
  • --headless (选项; true- 默认情况下,Perf Timeline CLI运行在"无头" 模式(即无可见 浏览器 UI. 要看到浏览器在生成时间线时, 请通过 --headless false 页:1 generate 命令。 请注意: --no-headless 是同义词 --headless false。 。 。 .

网络模拟选项

网络模拟选项允许您在指定的网络下生成一个性能时长 条件。 要启动网络模拟 你必须通过 --emulate-network-conditions 旗帜 附加配置选项。 这些选项镜像 Chrome Headless' emulateNetworkConditions 参数。 。 。 . 支持所有选项 。 请注意,关于使用CLI案的一些论点已扩充到: 改进产品经验(例如,通过各种参数,我们每秒大位数而不是字节数) 页:1.

  • --emulate-network-conditions (可选; false- 确定网络条件 生成时段, 您必须通过 --emulate-network-conditions 旗帜。 这个旗帜 允许遵守其他网络模拟选项。 除非 此旗帜已设定 .
  • --offline (可选; false- 通过 --offline 标记为 generate 命令模拟 一个网络断开.
  • --latency (可选; 0- 发出请求和答复信头之间人工、最小的间隔 收到时以毫秒(毫秒)表示.
  • --download-throughput (可选 : -1) - 以每秒兆位计的最大下载速度. 说明 Chrome Headless的版本这个参数每秒使用字节. Perf 时间线 CLI 每集使用兆位元 其次,这是比较常见的网络吞吐量衡量标准. -1 禁用节奏.
  • --upload-throughput (可选 : -1) - 每秒最大上传速度以兆位为单位. 说明 Chrome Headless的版本这个参数每秒使用字节. Perf 时间线 CLI 每集使用兆位元 其次,这是比较常见的网络吞吐量衡量标准.-1 禁用节奏.
  • --connection-type (可选 : none- 所谓基础网络连接的标签 类型。 支持的值在 Chrome Headless 下记录 ConnectType 文档。 。 。 .

设置 CPU 调速率选项

CPU Throttling 速率模拟选项允许您在 指定 CPU 条件。 要启动CPU模拟, 你必须通过 --set-cpu-throttling-rate 标记并附加配置选项。 这些选项镜像 Chrome Headless' setCPUThrottlingRate 参数。 。 。 . 所有选项都被支持.

  • --set-cpu-throttling-rate (可选; false- 确定网络条件 生成时段, 您必须通过 --set-cpu-throttling-rate 旗帜。 这个旗帜 允许遵守其他 CPU Throttling 速率选项。 他们会被完全忽略 除非此旗帜已经设定.
  • --rate (可选; 1- 设置CPU调速率。 数字代表减速 系数(例如,2是“2x”减速).

跳转到选项

Goto 选项映射 page.goto() 方法从 Puppeteer 的选项。 这些选项允许您 来配置如何处理页面导航。 目前支持所有选项。 注意 url 选项 page.goto 由 url,将位置参数传递给 generate。 。 无法在此覆盖此选项 。 见 page.goto 文档 为了更多 细节.

  • --timeout (可选; 30) - 最多数秒内加载页面直至时间线 生成被停止。 注意, 如果您模仿了网络或CPU, 或者您在稍后设置 --wait-until 值,您应当增加 --timeout 提高成功的机会 生成时间线 .
  • --wait-until (可选; load)-导航成功事件. 皮普捷尔"等待直到" 这一事件是为了完成时间表. load, (中文(简体) ), domcontentloaded, (中文(简体) ), networkidle0,以及 networkidle2 被支持。 请注意: --timeout 优先于 --wait-until如果 --wait-until 事件在 --timeout 时间已到达, 出现错误 将不生成时间表 .

追踪选项

追踪选项允许您配置 Pippeteer 的选项 page.tracing.start() 方法。 所有选项都被支持. 见 page.tracing.start 文档 为了更多 细节.

  • --path (可选; ./trace.json) - 保存跟踪的文件路径.
  • --screenshots (可选; false- 通过 --screenshots 旗帜导致Chrome服用 生成时间线时的页面截图 。 这些截图嵌入了追踪中 文件,并在查看性能时显示在 DevTools 中.
  • --categories (可选; []) - 时间线中要捕捉的痕量事件类别列表. 此参数作为分类的逗号分隔列表来传递. 如果您愿意, 此选项是有用的 以减少跟踪文件的整体大小。 请注意,仅限于某些类别 在 DevTools 的视图中, 给您留下一个似乎没有任何显示的时间线 表现面板。 查看可能的类别的最佳方式是查看原始的踪迹并寻找 页:1 cat 事件价值.

谢谢

这个项目建立在巨人的肩上. 这只是一个方便包装器 围绕一些非常令人振奋的项目,包括:

贡献者

见 捐助者 谁 参与编写这一工具.

版本与发布记录

@condenast/perf-timeline-cli 共发布 4 个版本,首次发布于 2018/03/27;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.1.3latest2018/04/088 年前
0.1.22018/03/278 年前
0.1.12018/03/278 年前
0.1.02018/03/278 年前

关于 @condenast/perf-timeline-cli 的常见问题

@condenast/perf-timeline-cli 是什么?

通过命令行接口生成 Chrome 性能时间线

如何安装 @condenast/perf-timeline-cli?

在项目目录运行 npm install @condenast/perf-timeline-cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 perf-timeline,可以用 npx perf-timeline 直接运行。

@condenast/perf-timeline-cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/condenast__perf-timeline-cli 是否存在。

@condenast/perf-timeline-cli 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@condenast/perf-timeline-cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=8.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@condenast/perf-timeline-cli 可以商用吗?

@condenast/perf-timeline-cli 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@condenast/perf-timeline-cli 的下载量有多少?

根据 npm 官方下载统计,@condenast/perf-timeline-cli 在 2026/10/11 – 2026/11/09 这 30 天内被下载 3,136 次,日均约 105 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@condenast/perf-timeline-cli 还在维护吗?

最新版本 0.1.3 发布于 2018/04/08(8 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/03/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。