现代 C++ 实战开发指南

目录

  • 1. 1. 基础知识与陷阱
  • 2. 2. 并发编程
  • 3. 3. 性能调优
  • 4. 4. 内存管理
    • 4.1. 智能指针
    • 4.2. RAII 原则
    • 4.3. 内存分配
    • 4.4. 内存布局
    • 4.5. 内存泄漏检测
  • 5. 5. 网络编程
  • 6. 6. 常用库
  • 7. 7. 速查表
  • 8. 参考资源
现代 C++ 实战开发指南
  • 4. 4. 内存管理
  • 查看页面源码

4. 4. 内存管理

C++ 提供了精细的内存控制能力,但也带来了责任。本章介绍智能指针、RAII、 内存布局、自定义分配器和内存泄漏排查工具。

Contents:

  • 4.1. 智能指针
    • 4.1.1. unique_ptr
    • 4.1.2. shared_ptr
    • 4.1.3. weak_ptr
    • 4.1.4. make_shared vs new
    • 4.1.5. 性能考虑
    • 4.1.6. 智能指针选择指南
  • 4.2. RAII 原则
    • 4.2.1. 什么是 RAII
    • 4.2.2. RAII 的优势
    • 4.2.3. 常见 RAII 类
    • 4.2.4. Scope Guard
    • 4.2.5. RAII 与异常
    • 4.2.6. RAII 最佳实践
  • 4.3. 内存分配
    • 4.3.1. 栈 vs 堆
    • 4.3.2. new 和 delete
    • 4.3.3. 自定义分配器
    • 4.3.4. 内存对齐
    • 4.3.5. 小对象优化 (Small Object Optimization)
    • 4.3.6. 内存映射文件
    • 4.3.7. 内存分配策略
  • 4.4. 内存布局
    • 4.4.1. 对象内存布局
    • 4.4.2. 类的内存布局
    • 4.4.3. 查看实际布局
    • 4.4.4. 空基类优化 (EBO)
    • 4.4.5. std::is_standard_layout
    • 4.4.6. POD (Plain Old Data)
    • 4.4.7. 位字段
    • 4.4.8. union
  • 4.5. 内存泄漏检测
    • 4.5.1. Valgrind
    • 4.5.2. AddressSanitizer (ASan)
    • 4.5.3. LeakSanitizer (LSan)
    • 4.5.4. MemorySanitizer (MSan)
    • 4.5.5. ThreadSanitizer (TSan)
    • 4.5.6. 代码中的内存检查
    • 4.5.7. 智能指针调试
    • 4.5.8. 工具对比
上一页 下一页

© 版权所有 2020 ~ 2035, Walter Fan, Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License。

利用 Sphinx 构建,使用的 主题 由 Read the Docs 开发.