性能优化系列文章导航:《新的职业目标,以及C++性能优化》
针对动态内存分配、释放的性能优化checklist
(1)使用内存池库。要求: 异常安全。
线程安全,多线程支持。
池化对象。池库中可以创建多个对象,一个对象一个池块,每个对象的内存块大小相同。
(2)减少动态变量的使用。
(3)为使用频繁的动态类定义类专用内存管理器。
笔者对这一点并不十分理解。作者说这么做可以提高内存分配的速度,理由是new分配相同大小的内存块的速度比分配随机大小的内存块的速度要高效。
(4)预分配足够空间以防止动态变量的重新分配。
(5)减少内存拷贝。
(6)避免或减少对象的内存拷贝。如:
拷贝构造
赋值运算符
函数参数
函数返回值临时对象
插入对象到STL容器
(7)使用指针的引用来避免指针传参错误。
(8)使用C++11的右值引用和std::move来优化临时对象。