Windows C++ 运行时性能优化
一、找到性能瓶颈
使用Visual Studio Analysis 性能探查器,找到程序运行的性能瓶颈:
- 耗时较大的代码
- 调用次数较多的代码
- 执行时间排序靠前的函数调用
二、C++优化方法
找到程序的性能瓶颈后,对目标程序进行C++语法及效率的优化,主要包含以下方法:
- 拷贝优化:变量初始化、引用传参、vector与string提前 reserve()空间,防止出现重新分配空间;冗余的变量拷贝;
- 空间换时间:map的效率较低,无序可用vector、unordered_map代替,map.end()只找一次;
- 算法优化:stl容器使用迭代器遍历,使用时间复杂度较低算法,空间换时间;
- 多重过滤:把强过滤前移;过滤强度差不多时,过滤消耗较小的前移;
- 提前计算:循环体内的计算提到循环体之前;
- 频繁的内存申请、释放操作:new和delete,可能造成内存碎片的问题;
- 位运算代替乘除法,整数次方不要用pow,ii比pow(i,2)快8倍,ii*i比pow快40倍;