栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++计算性能优化

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++计算性能优化

总结下我在做c++开发的过程中用到的性能优化,这些优化场景均是要求在设备上达到最大的计算性能,总结如下:

系统层次    
1.使用oprofile对整个系统的性能进行分析,采用的是硬件计数器,效率高,负载低,且结果准确。
2.使用perf测试cpu命中率

编译层次 
1.debug->release
2.-O1 -O2 -O3
3.使用静态库性能大于动态库。动态库第一次访问的时候会GOT造成耗时.运行时性能损失5%

算法层次
1.map-->hashmap
2.根据不同的使用场景使用不同的stl 插入 删除 查找 排序
3.使用效率更高的算法
4.使用空间换时间-放到队列中立刻返回

代码层次  
1.cache命中
2.if else命中
3.内联函数
4.函数参数<3个 使用寄存器而不是内存
5.提前计算--多次使用的变量 提前计算好
6.延迟计算--用不到的变量用到的时候再去初始化
7.用宏 可以在编译时进行优化
8.局部变量初始化成本过高 尽量少用
9.避线程间的锁
10.内存对齐
11.多通道编程 数据独立按照通道构造数据
12.按照cacheline定义数据结构 内存虽然有浪费 但速度快
13.使用全局变量 利用cpu缓存的局部性原则增加数据缓存的几率
14.遍历二维数组的时候先遍历二位下标(连续内存)
15.提前new好内存 减少系统调用malloc/free的耗时
16.减少乘法、除法 多用位移运算
17.少用float结构
18.减少频繁内存分配 会因为内存碎片导致性能下降
19.使用引用和指针 减少值传递
20.利用多核特性 线程间顺序做业务
21.线程间ringbuffer无锁队列
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768795.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号