<提高C++性能的编程技术>-创新互联

一、跟踪实例
1.I/O的开销的高昂的;
2.函数调用的开销是要考虑的一个因素,因此应该将短小的、频繁调用的函数内联;
3.复制对象的开销是高昂的,最好选择传递引用;
4.对象定义会出发隐形地执行构造函数和析构函数。<提高C++性能的编程技术
>

二、构造函数和析构函数
1.堆内存的分配与释放代价是高昂的;
2.去掉不必要的冗余对象,不管是类中的成员变量还是函数的参数,都会带来不必要的构造和析构开销;
3.有些基类没有成员变量也没有提供接口的作用,这种基类属于无意义的基类,应该去掉;
4.去掉多余的构造开销。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都做网站、广平网络推广、小程序制作、广平网络营销、广平企业策划、广平品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供广平建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

三、虚函数
1.只能在运行期间解析的虚函数调用是不允许使用内联的;
2.模版比继承提供更好的性能,但是编译错误难以调试,同时c++不支持隐式接口。

四、返回值优化(RVO)
1.无新内容。

五、临时对象
1.将构造函数声明为explicit,可以允许编译器在幕后使用类型转换;
2.临时对象会以构造函数和析构函数的形式降低一半的性能;
3.如可能,尽量避免使用对象拷贝;
4.在可能是"+、-、*"或者"/"的地方,使用=运算符可以消除临时对象。

六、单线程内存池
1.暂时忽略。

七、多线程内存池
1.暂时忽略。

八、内联基础
1.暂时忽略。

九、内联-站在性能的角度
1.暂时忽略。

十、内联技巧
1.暂时忽略。

十一、标准模板库
1.无新内容。

十二、引用计数
1.无新内容。

十三、编码优化
1.预先计算;
2.提高常用路径的速度,if (and1 && and2)以及if (or1 || or2)中;
3.缓式计算,将计算延迟到真正需要的时候;
4.体系结构,在经常一起访问两个成员时,最好让他们处于统一缓存行中;
5.编译器优化,在release时开启编译器优化。

十四、设计优化
1.无新内容。

十五、可扩展性
1.在类中定义的时候,锁应该放置在最靠近它所保护的共享数据附近;
2.读写锁会降低性能,但是能提高扩展性;
3.把单一的任务分解为多个并发子任务。

十六、系统体系结构相关话题
1.同步操作的开销往往比异步操作大得多,但异步操作往往需要用轮询来获取结果,根据需要再进行权衡;
2.对于要求响应延迟最小的程序来说,同步多线程方案要比异步轮询方案好,因为异步方案缺少通知手段。


分享文章:&lt;提高C++性能的编程技术&gt;-创新互联
文章URL:http://hbruida.cn/article/dejihc.html