二、构造函数和析构函数
1.堆内存的分配与释放代价是高昂的;
2.去掉不必要的冗余对象,不管是类中的成员变量还是函数的参数,都会带来不必要的构造和析构开销;
3.有些基类没有成员变量也没有提供接口的作用,这种基类属于无意义的基类,应该去掉;
4.去掉多余的构造开销。
三、虚函数
1.只能在运行期间解析的虚函数调用是不允许使用内联的;
2.模版比继承提供更好的性能,但是编译错误难以调试,同时c++不支持隐式接口。
四、返回值优化(RVO)
1.无新内容。
五、临时对象
1.将构造函数声明为explicit,可以允许编译器在幕后使用类型转换;
2.临时对象会以构造函数和析构函数的形式降低一半的性能;
3.如可能,尽量避免使用对象拷贝;
4.在<op>可能是"+、-、*"或者"/"的地方,使用<op>=运算符可以消除临时对象。
六、单线程内存池
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.对于要求响应延迟最小的程序来说,同步多线程方案要比异步轮询方案好,因为异步方案缺少通知手段。
分享名称:<提高C++性能的编程技术>-创新互联
标题网址:https://www.cdcxhl.com/article42/dejihc.html
成都网站建设公司_创新互联,为您提供网站导航、品牌网站建设、虚拟主机、网站建设、网站设计、App设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联