性能¶
此页面说明如何优化 Firefox 代码库的性能。
该 测试文档 说明如何在 Firefox 中测试性能。该 分析器文档 说明如何使用 Gecko 分析器。
通用性能参考¶
关于通过 基准测试 生成有效性能指标的技巧
GPU 性能 前端代码中减少对浏览器性能影响的技巧。
自动化性能测试和审核 有关 Mozilla 自动化性能测试和审核的信息。
Firefox 前端工程师的性能最佳实践 前端代码中减少对浏览器性能影响的技巧。
报告性能问题 一份用户友好的性能问题报告指南。不需要开发环境。
滚动关联效果 有关滚动关联效果、其对性能的影响、相关工具以及可能的缓解技术的信息。
内存分析和泄漏检测工具¶
该 开发者工具内存面板 支持获取堆快照、对比快照、计算支配树以显示“占用内存最多的持有者”以及记录分配堆栈。
About:memory about:memory 是测量 Mozilla 代码中内存使用情况最简单的工具,也是最佳的起点。它还可以让你执行其他与内存相关的操作,例如触发 GC 和 CC、转储 GC & CC 日志以及转储 DMD 报告。about:memory 基于 Firefox 的内存报告基础设施构建。
DMD 是一种工具,用于识别 about:memory 测量中的不足,还可以执行多种通用堆分析。
AWSY (are we slim yet?) 是一个内存使用和回归跟踪器。
Bloatview 打印每个类的分配和引用计数统计信息,并提供每个类内存泄漏量的总数量。它用作 Mozilla 持续集成测试的一部分。
引用计数跟踪和平衡 是跟踪由引用计数不正确使用引起的泄漏的方法。它们速度慢且使用起来并不容易,因此最适合专家开发人员使用。
LogAlloc 是一种转储 Gecko 中内存分配日志的工具。然后可以针对 Firefox 的默认内存分配器独立地或通过另一个 replace-malloc 库重放该日志,从而允许在完全相同的工作负载下测试其他分配器。
性能分析和性能工具¶
使用 perf 进行 JIT 分析 使用 perf 收集 JIT 配置文件。
使用 Instruments 进行分析 如何使用 Apple 的 Instruments 工具分析 Mozilla 代码。
使用 xperf 进行分析 如何使用 Microsoft 的 Xperf 工具分析 Mozilla 代码。
使用并发可视化工具进行分析 如何使用 Visual Studio 的并发可视化工具分析 Mozilla 代码。
使用 Zoom 进行分析 Zoom 是由 Shark 开发人员为 Linux 开发的分析器。
添加新的遥测探针 有关如何向遥测性能报告系统添加新度量的信息
功耗分析¶
功耗分析概述。其中包括有关硬件、可测量内容以及推荐方法的详细信息。对于功耗分析新手来说,它应该是起点。
(Mac、Linux) tools/power/rapl 是 Mozilla 代码库中的一个命令行实用程序,它使用 Intel RAPL 接口收集软件包、核心、GPU 和内存的直接功耗估算值。
(仅限 Mac) powermetrics 是一个命令行实用程序,用于收集和显示各种全局和每个进程的测量值,包括 CPU 使用率、GPU 使用率以及各种唤醒频率。
(所有平台) TimerFirings 日志记录是一种内置日志记录机制,用于打印每个触发的时间数据。
(仅限 Mac) 活动监视器和 top 电池状态菜单、活动监视器和 top 是三个相关的 Mac 工具,它们存在主要缺陷,但用户经常会参考它们,因此值得了解。
(Windows、Mac 和 Linux) 英特尔电源工具 英特尔电源工具提供软件包和处理器 RAPL 估算值的实时图表。它还提供了一个 API,可以通过该 API 获取这些估算值。
(仅限 Linux) perf perf 是一个功能强大的命令行实用程序,可以测量许多不同的内容,包括能量估算值和唤醒等内容的高上下文测量值。
(仅限 Linux) turbostat 是一个命令行实用程序,用于收集和显示各种与电源相关的测量值,重点关注每个 CPU 的测量值,例如频率和 C 状态。
(仅限 Linux) powertop 是一个交互式命令行实用程序,用于收集和显示各种与电源相关的测量值。
性能指标¶
PerfStats - 一个用于低开销收集内部性能指标的框架。