针对C++语言特性的性能优化checklist

系列文章导航:《新的职业目标,以及C++性能优化


针对C++语言特性的性能优化checklist


(1)尽量使用栈内存,较少使用堆内存。
(2)将堆内存池化。
(3)函数参数使用const&或&传递类对象。
(4)短小的函数宏化或inline化。
(5)将类成员变量的初始化放在初始化列表中。尤其是类中含有的对象的初始化。
(6)严禁使用类成员变量互相初始化。
(7)利用给构造函数加explicit来阻止编译器进行隐式的构造函数转换。
(8)避免或减少对象的构造和销毁。
(9)避免创建不必要的对象。避免编译器生成的临时对象。在C++11及以后版本中可以使用右值引用对临时对象进行优化。
(10)尽量将非内建类型的对象延迟到已经确切知道其有效状态时定义或创建。这样可以减少临时对象的生成。即建议这样写:
        Object r = a + b;
        而不建议这样写:
        Object r;
        /*...不使用r的代码段...*/
        r = a + b;
        这里有个前提是在r = a + b;之前没有用到r,因而不必提前生成。
(11)尽量使用a += b;而避免使用 a = a + b;。
(12)对于非内建类型,在保证语义前提下,优先使用++i;避免使用i++;。
(13)如果函数体较大,不要使用内联。
(14)使用智能指针。(如果可能)
(15)内存池增加自动伸缩机制。
(16)给频繁创建和销毁的对象应用内存池。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值