Memory Management in C++

東軟 2006 課程備忘錄 (18 小時)

侯捷

此為備忘錄,不是完整教材或學習討論的地方

2006 冬季


主旨:全面學習 C++ memory management 的基本工具和高階管理手法,並學習各大知名程式庫的 Pooled Allocation 技術。

說明:Memory management 一向是 C++ programmer 的痛點,主要因為 C++ 不提供 Garbage Collection。這畢竟是效能顧慮下的一種取捨。現實如此,我們必須追求在如此的現實下如何又快又好地運用 memory,使符合速度和空間的最大利益。本課程在低階上全面介紹 C++ 提供的各種 memory 管理工具(各種 overloadable operators),在高階上深刻學習各大程式庫(包括 STL, Loki, MFC, Boost)的 Pooled Allocation 的作法,並提供它們的高度可移植版(由侯捷改編)。

教材:自編講義,PDF 格式。

課次 時數 內容 備註
1 3 課程簡介、相關讀物評介
new expression vs. operator new
delete expression vs. operator delete
array new and array delete.
placement new
overhead of C malloc and C++ operator new
examples for opeator new/delete overloading.
 

 

2 3 std::auto_ptr
boost::shared_ptr
How to inherit operator new/delete
Introduction to std::allocator
 
3 3 SGI STL allocator的設計概念  
4 3 SGI STL allocator的實作技術與源碼剖析  
5 3 loki allocator的設計概念  
6 3 loki allocator的實作技術與源碼剖析  
7 3 MFC allocator的設計概念與實作技術  
8 3 Boost.Pool的設計概念與實作技術  


-- the end