4006-998-758
3000+课程任你选择
Memory Management (内存管理)
研发学院 源码剖析 C C++ 开课时间:2021-08-02
侯捷

台湾著名C++技术专家,两岸著名IT技术教育者,计算机图书作家/译者/书评人。深入了解企业一线实践,挖掘C++技术难点与要点,有多年的企业客户培训经验,其深度的技术剖析和丰富的案例教学,深受企业及c++开发者的广泛好评。擅长以容易理解的图片解析繁复的结构和过程,以深入浅出的方式阐述高深的技术与复杂的源代码。

30年经验于计算器技术之写作/翻译/授课,曾执教于元智大学、南京大学,现任同济大学软件学院客座教授。着有《深入浅出MFC》《STL源码剖析》《多型与虚拟》《无责任书评》等书,译有《Inside the C++ Object Model》《C++ Primer》《Effective C++》《More Effective C++》等书。


查看老师详情
课程内容

课程说明


从最重要且最普及的内存管理库 (memory management libraries) 中获得启发,并从源码分析中获得实战能力。


课程特点


特别强调 "源码剖析 实例验证",彻底剖析 C/C++ 的各种内存管理策略。全部内容建立在源码级别 (source code level)。了解内存管理的来龙去脉将对操作系统、标准库、应用程序脉脉相承的运行形成一种「胸中自有丘壑」的通贯感。


课程对象


C++ 中高阶学员


课程大纲


万法归宗:C++ Applications => C++ Standard Library (containers & allocators) => CRT (malloc / free) => O.S. (memory APIs)

内存管理诉求:空间效能和速度效能

内存管理之C++语言构件:new/delete, array new/delete, placement new/delete.

两个易混淆的语言构件:new expression vs. operator new

重载 (overloading) 和内存管理相关的语言构件

一个最简化的 Memory Pool

从最简化之Memory Pool进化到std::allocator

std::alloctor 之最佳范例 (GNU版本; 源码剖析和详细图示)

std::alloctor 的优缺点和改善之道

GNU C++ 之近期演变

CRT malloc/free 针对小内存块的管理(源码剖析、详细图标、实例观察)

VC++ 之近期演变

一个更好的小内存块分配器:loki::SmallObjAllocator

Windows APIs如何管理区块

总整理:应用程序 => 使用 std::containers => std::allocator运行 => malloc 运行 => O.S. API 运行

返回上一级