课程大纲
第一部分 Linux C++安全编程与实践
通过示例不正确和正确代码例子的方式来进行分析和实践
● 安全编程概念
简单介绍安全编程的基本概念。
● 申明以及初始化
申明以及初始化相关问题,例如可变参数,未命名空间,const和volatile等。
● 字符串相关
字符串相关的各种问题,比如宽窄字符串问题等。
● 内存
内存分配和回收有关的问题,栈内存,堆内存等问题,比如栈、堆溢出等。
● 容器
容器相关问题,比如数组,vector,map相关问题。
第一部分 Linux C++安全编程与实践 (续)
● 文件
文件系统相关,比如打开、关闭以及各种操作。
● 异常与错误处理
异常和错误处理的问题,比如为什么应该避免使用setjmp()或longjmp()等。
● 并行
多线程相关问题,比如锁的使用,避免死锁,安全使用锁等。
● 其他
其他分类杂项,比如不要用std:rand来生成伪随机数等。
● 附录
介绍gdb或者别的工具来进行各种问题的快速诊断,比如内存泄漏、堆栈溢出、崩溃、死锁分析与定位等。
第二部分 Linux C++性能优化与实践
通过示例代码例子的方式来进行分析和实践。
● 性能优化思想
介绍性能优化的一些基本概念,比如80/20法则,阿姆达尔定律等。
● 性能测量
比如通过注入代码或者工具来测量代码的执行时间。
● 字符串优化
介绍字符串优化相关例子与方式。
● 优化算法
通过选择更好的算法来进行优化。
● 使用更好的C++库
比如正确使用标准库,优化现有的库。
● 优化查找与排序
比如正确使用标准库的查找与排序功能,以及各种容器使用等。
第二部分 Linux C++性能优化与实践 (续)
● 优化数据结构
使用更好的数据结构,比如正确使用各种容器。
● 文件读写优化
优化文件读写性能。
● 内存管理优化
提供内存管理和使用效率等。
● 并发优化
比如锁的正确使用,优化同步方式等。
● 编译器优化相关
介绍编译器优化相关,比如编译器优化陷阱等。