搜索

pdf文档 Why is my Build so Slow

3.96 MB 71 页 0 下载 70 浏览 0 评论 0 收藏
所属分类: 后端开发 / C++
语言 格式 评分
英语
.pdf
3
摘要
文档探讨了构建过程缓慢的问题,介绍了使用Perfetto进行编译分析和可视化的方法。通过分析构建日志和依赖管理,提出了优化构建性能的建议,包括增量构建、依赖管理优化和硬件资源的合理利用。
AI总结
### 文档总结:为什么我的构建这么慢? 该文档主要探讨了构建过程中的性能问题,并通过 profiling 和可视化工具分析了构建时间的瓶颈。以下是核心观点和关键信息: 1. **构建性能分析工具** 使用了 **Perfetto** 和 **Ninja** 等工具进行构建 profiling,通过日志和时间线分析构建过程中的各个步骤。文档展示了不同文件的编译时间: - `main.cpp.o`:386ms - `slow/bar.cpp.o`:825ms - `fast/foo.cpp.o`:1144ms - 最终可执行文件:1198ms 2. **构建过程中的问题** - **依赖管理不善**: 构建过程应保持功能性,避免依赖瓶颈,尤其是生成代码(如 Protobuf)时。 - 单核和并行构建应正常工作。 - 显式依赖关系有助于提高硬件利用率并确保构建正确性。 - **增量构建优化不足**: 建议减少不必要的工作量,使用增量构建、编译缓存和硬件加速等方法。 3. **优化建议** - **简单优化已过时**: 需要更深入的优化,例如: - 使用包管理器。 - 分布式构建。 - 增加硬件资源(如更快的 CPU 或 SSD)。 - **更小的目标和更清晰的依赖关系**: 通过减少构建目标的大小和显式表达依赖关系,可以提高构建效率。 4. **可视化与工具** - 使用 **Perfetto** 的交互式追踪工具进行构建性能分析,支持 Android、Linux 和 Chrome 等平台。 - **Ninja** 的日志文件 `.ninja_log` 记录了编译的起始时间、输出文件和命令哈希值。 5. **总结** 文档强调了构建性能优化的重要性,并提供了从工具使用到依赖管理的全面建议,帮助开发者更高效地解决构建速度问题。 --- ### 关键数据与工具 - **编译时间**:`fast/foo.cpp.o` 是构建时间最长的文件(1144ms)。 - **工具**:Perfetto、Ninja、CMake。 - **日志文件**:`.ninja_log` 提供编译过程的详细记录。 - **交互式工具**:Perfetto 的在线 trace viewer(https://ui.perfetto.dev/)。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 59 页请下载阅读 -
文档评分
请文明评论,理性发言.