C++性能优化培训
- C++编程开发培训课程目录
- C++面向对象高级编程培训
- C++底层机制剖析培训
- C++设计模式培训
- C++单元测试培训
- 单元测试、重构与持续集成培训
- C++内存管理培训
- C++性能优化培训
课程介绍:
本课程主要针对C++程序的性能优化进行全局性介绍,详细讲解C++语言的对象模型,与性能有关的语言特性及一些数据结构的性能,C++程序内存使用的优 化。结合一些操作系统的内存管理机制介绍如何在特定的平台下进行内存优化。此外,还将深入介绍C++语言管理动态内存的机制和方法,并介绍一个常用的内存 管理方法,即内存池的实现。介绍程序启动性能的优化。介绍3类性能工具,即内存分析工具、性能分析工具和I/O检测工具;本课程理论结合实战,全面提升 C++技术开发人员的性能优化能力。
课程对象: 有一定C++开发经验的开发人员
课程长度:2天
最新时间:定制课程(内训),人满开班(公开课)
课程大纲:
第1篇 应用程序性能优化概述
第1章 应用程序性能优化概述
1.1 应用程序性能的定义
1.2 性能基准
1.2.1 基准负载
1.2.2 基准用例
1.2.3 性能基准的运行
1.2.4 性能基准结果
1.3 性能分析方法概述
1.4 性能优化方法概述
第2篇 C++程序优化基础
第2章 C++对象模型
2.1 基本概念
2.1.1 程序使用内存区
2.1.2 全局/静态存储区及常量数据区
2.1.3 堆和栈
2.1.4 C++中的对象
2.2 对象的生命周期
2.3 C++对象的内存布局
2.3.1 简单对象
2.3.2 单继承
2.3.3 多继承
2.4 构造与析构
第3章 C++语言特性中的性能分析
3.1 构造函数与析构函数
3.2 继承与虚拟函数
3.3 临时对象
3.4 内联函数
第4章 常用数据结构的性能分析
4.1 常用数据结构性能分析
4.1.1 遍历
4.1.2 插入
4.1.3 删除
4.1.4 排序
4.1.5 查找
4.2 动态数组的实现及分析
4.2.1 动态数组简介
4.2.2 动态数组实践及分析
第3篇 内存使用优化
第5章 操作系统的内存管理
5.1 Windows内存管理
5.1.1 使用虚拟内存
5.1.2 访问虚拟内存时的处理流程
5.1.3 虚拟地址到物理地址的映射
5.1.4 虚拟内存空间使用状态记录
5.1.5 进程工作集
5.1.6 Win32内存相关API
5.2 Linux内存管理机制
5.2.1 进程的内存布局
5.2.2 物理内存管理
5.2.3 虚拟内存管理
5.2.4 虚拟地址映射为物理地址
第6章 动态内存管理
6.1 operator new/delete
6.2 自定义全局operator new/delete
6.3 自定义类operator new/delete
6.4 避免内存泄漏
6.5 智能指针
第7章 内存池
7.1 自定义内存池性能优化的原理
7.1.1 默认内存管理函数的不足
7.1.2 内存池的定义和分类
7.1.3 内存池工作原理示例
7.2 一个内存池的实现实例
7.2.1 内部构造
7.2.2 总体机制
7.2.3 细节剖析
7.2.4 使用方法
7.2.5 性能比较
第4篇 应用程序启动性能优化
第8章 动态链接与动态库
8.1 链接技术的发展
8.1.1 编译、链接和加载
8.1.2 静态链接与静态链接库
8.1.3 动态链接与动态库
8.2 Windows DLL,Dynamic Linked Library
8.2.1 DLL基础
8.2.2 DLL如何工作
8.2.3 关于DLL的杂项
8.3 Linux DSO
8.3.1 DSO与ELF
8.3.2 DSO如何工作
8.3.3 构建与使用DSO
第9章 程序启动过程
9.1 Win32程序启动过程
9.2 Linux程序启动过程
9.3 影响程序启动性能的因素
9.3.1 源代码因素
9.3.2 动态链接库因素
9.3.3 配置文件/资源文件因素
9.3.4 其他因素
第10章 程序启动性能优化
10.1 优化程序启动性能的步骤
10.2 测试程序启动性能的方法
10.3 优化可执行文件和库文件
10.3.1 减少动态链接库的数量
10.3.2 减小动态链接库尺寸
10.3.3 优化可执行文件和库文件中的代码布局
10.4 优化源代码
10.4.1 优化启动时读取的配置文件及帮助文件
10.4.2 预读频繁访问的文件
10.4.3 清除产生exception的代码
10.4.4 PreLoad
10.4.5 延迟初始化
10.4.6 多线程化启动
第5篇 性能工具
第11章 内存分析工具
IBM Rational Purify
11.1 Rational Purify工作原理
11.2 使用Rational Purify来发现内存泄漏
11.2.1 内存泄漏及其对应用程序性能的影响
11.2.2 用PerfMon来发现Windows系统中有严重后果的内存泄漏
11.2.3 用Rational Purify来定位内存泄漏
11.2.4 典型的内存泄漏错误
11.3 Rational Purify使用指南
11.4 Rational Purify实例分析
第12章 性能分析工具
IBM Rational Quantify
12.1 Rational Quantify工作原理
12.2 Rational Quantify使用指南
12.3 Rational Quantify实例分析
第13章 实时IO监测工具FileMon
13.1 FileMon的工作原理
13.2 FileMon使用指南
13.3 使用FileMon解决问题
第1章 应用程序性能优化概述
1.1 应用程序性能的定义
1.2 性能基准
1.2.1 基准负载
1.2.2 基准用例
1.2.3 性能基准的运行
1.2.4 性能基准结果
1.3 性能分析方法概述
1.4 性能优化方法概述
第2篇 C++程序优化基础
第2章 C++对象模型
2.1 基本概念
2.1.1 程序使用内存区
2.1.2 全局/静态存储区及常量数据区
2.1.3 堆和栈
2.1.4 C++中的对象
2.2 对象的生命周期
2.3 C++对象的内存布局
2.3.1 简单对象
2.3.2 单继承
2.3.3 多继承
2.4 构造与析构
第3章 C++语言特性中的性能分析
3.1 构造函数与析构函数
3.2 继承与虚拟函数
3.3 临时对象
3.4 内联函数
第4章 常用数据结构的性能分析
4.1 常用数据结构性能分析
4.1.1 遍历
4.1.2 插入
4.1.3 删除
4.1.4 排序
4.1.5 查找
4.2 动态数组的实现及分析
4.2.1 动态数组简介
4.2.2 动态数组实践及分析
第3篇 内存使用优化
第5章 操作系统的内存管理
5.1 Windows内存管理
5.1.1 使用虚拟内存
5.1.2 访问虚拟内存时的处理流程
5.1.3 虚拟地址到物理地址的映射
5.1.4 虚拟内存空间使用状态记录
5.1.5 进程工作集
5.1.6 Win32内存相关API
5.2 Linux内存管理机制
5.2.1 进程的内存布局
5.2.2 物理内存管理
5.2.3 虚拟内存管理
5.2.4 虚拟地址映射为物理地址
第6章 动态内存管理
6.1 operator new/delete
6.2 自定义全局operator new/delete
6.3 自定义类operator new/delete
6.4 避免内存泄漏
6.5 智能指针
第7章 内存池
7.1 自定义内存池性能优化的原理
7.1.1 默认内存管理函数的不足
7.1.2 内存池的定义和分类
7.1.3 内存池工作原理示例
7.2 一个内存池的实现实例
7.2.1 内部构造
7.2.2 总体机制
7.2.3 细节剖析
7.2.4 使用方法
7.2.5 性能比较
第4篇 应用程序启动性能优化
第8章 动态链接与动态库
8.1 链接技术的发展
8.1.1 编译、链接和加载
8.1.2 静态链接与静态链接库
8.1.3 动态链接与动态库
8.2 Windows DLL,Dynamic Linked Library
8.2.1 DLL基础
8.2.2 DLL如何工作
8.2.3 关于DLL的杂项
8.3 Linux DSO
8.3.1 DSO与ELF
8.3.2 DSO如何工作
8.3.3 构建与使用DSO
第9章 程序启动过程
9.1 Win32程序启动过程
9.2 Linux程序启动过程
9.3 影响程序启动性能的因素
9.3.1 源代码因素
9.3.2 动态链接库因素
9.3.3 配置文件/资源文件因素
9.3.4 其他因素
第10章 程序启动性能优化
10.1 优化程序启动性能的步骤
10.2 测试程序启动性能的方法
10.3 优化可执行文件和库文件
10.3.1 减少动态链接库的数量
10.3.2 减小动态链接库尺寸
10.3.3 优化可执行文件和库文件中的代码布局
10.4 优化源代码
10.4.1 优化启动时读取的配置文件及帮助文件
10.4.2 预读频繁访问的文件
10.4.3 清除产生exception的代码
10.4.4 PreLoad
10.4.5 延迟初始化
10.4.6 多线程化启动
第5篇 性能工具
第11章 内存分析工具
IBM Rational Purify
11.1 Rational Purify工作原理
11.2 使用Rational Purify来发现内存泄漏
11.2.1 内存泄漏及其对应用程序性能的影响
11.2.2 用PerfMon来发现Windows系统中有严重后果的内存泄漏
11.2.3 用Rational Purify来定位内存泄漏
11.2.4 典型的内存泄漏错误
11.3 Rational Purify使用指南
11.4 Rational Purify实例分析
第12章 性能分析工具
IBM Rational Quantify
12.1 Rational Quantify工作原理
12.2 Rational Quantify使用指南
12.3 Rational Quantify实例分析
第13章 实时IO监测工具FileMon
13.1 FileMon的工作原理
13.2 FileMon使用指南
13.3 使用FileMon解决问题