文档目录
编译器与运行期优化
编译器如何翻译 OOP、编译期优化、链接与符号、RTTI 与异常、优化标志与 PGO。
章节目录
- 编译器对 C++ 面向对象(OOP)的底层翻译黑幕 目标:撕开语法糖,看清编译器是如何在内存里摆放你的类和函数的。 1.1 多态的物理本质:虚函数表(vtable)与虚表指针(vptr) 当一个类包含 …
- 编译期代码优化与硬件性能桥梁 目标:掌握如何引导编译器生成执行效率更高的汇编指令。 2.1 函数内联(Inline)与全程序优化(LTO) inline 关键字的本质:它是指令还是建议? …
- 链接、符号与 C++ 运行期初始化 目标:搞懂 C++ 程序从文本文件变成系统进程的必经之路。 3.1 强符号、弱符号与多重定义(ODR 规则) 为什么在头文件中写普通函数定义会引发链接错误 …
- RTTI 与异常处理底层机制 目标:理解运行时类型识别和异常抛出的物理开销。 4.1 dynamic_cast 底层原理 type_info 链与 vtable 中的 …
- 编译优化标志详解 目标:知道每种优化级别具体做了什么,才能为项目选择正确的编译配置。 5.1 -O0 与 -Og -O0:不优化,生成最直接的汇编,适合调试。 -Og:不干扰 …
- Profile-Guided Optimization(PGO) 目标:用实际运行数据反馈编译器,生成针对实际执行路径优化的代码。 6.1 PGO 的三步流程 插桩编译(-fprofile-generate)→ 运行代表性 …
- 性能分析工具链 目标:用工具定位程序瓶颈,而不是靠猜测。 7.1 perf —— Linux 性能计数器 perf stat:统计模式,看 Cache Miss、IPC、分 …
- 调试与 Sanitizer 目标:用自动化工具捕获 C++ 常见的内存错误和未定义行为。 8.1 GDB / LLDB 高效调试 reverse-continue 逆向执行调试。 条件 …
- 链接器进阶 目标:打通构建系统的"最后一公里",掌握链接器控制。 9.1 符号可见性与导出控制 …