C++高级编程篇-如何编写高效的C++篇

本文探讨了如何编写高效的C++程序,强调从设计阶段就考虑效率,包括选择高效算法,避免不必要的计算,以及如何利用内联、引用等技术减少性能损耗。同时,文章指出C++的某些特性如异常、虚函数可能影响性能,应当根据需求谨慎使用。通过缓存、对象池和线程池等设计策略,可以显著提升程序的运行效率。

为了编写高效的程序,需要在设计层次上做考虑,并在实现层次上考虑细节。(一定要在程序的生命周期已开始就考虑性能)。

“编写高效的C++程序”指要编写能高效运行的程序,而不是高效地编写程序,要学会如何节省用户的时间,而不是节省你自己的时间。

1、实现高效的两种方法

如果想编写真正高性能的应用,就必须从设计一开始就考虑效率问题。设计级效率包括:选择高效算法,避免不必要的步骤和计算,而且要选择适当的设计优化。

2、C++是一种低效语言吗

C++包括一些高级构造,如异常和虚方法,这些构造都相当的慢。

C++语言有一个一般性的设计原则:如果不用它,就不必为之付出。(如果不使用虚方法,就不用付出使用虚方法的性能代价。)

好的优化编译器可以自动完成某些语言级优化,请检查编译器文档,了解有关细节。

1、高效的处理对象

①、传引用

对象应该很少按值传递给函数或方法。

总体来说,如果一个函数要修改一个对象,可以简单的按引用传递对象;如果函数不会修改对象,则应按const引用来传递。

②、按引用返回

应当按引用从函数返回对象,以避免不必要的复制。(不能返回一个局部对象的引用和指针)。

③、按引用捕获异常

应当按引用捕获异常,避免额外的复制。[异常在性能方面是重量级的,因此在异常方面做小幅改进也会大大改善效率。]

④、避免创建临时对象

很多情况下,编译器会创建临时的匿名对象。

⑤、返回值优化

按值返回对象的函数可能导致创建一个临时对象。[一般编译器会把大多数情况下的临时变量予以优化,这种优化称为返回值优化]

2、不要过度使用高开销的语言特性

从执行速度方面看,许多C++特性的开销都很大,异常、虚函数、RTTI(运行时类型识别)更是首当其冲。即使在程序中没有显式地使用异常和RTTI特性,这个特性也会带来性能开销,仅仅是因为可能会用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值