当前位置:   article > 正文

C++计算性能优化_qt如何优化性能,降低cpu

qt如何优化性能,降低cpu

系统层面优化

1.在程序开始的时候就约定好线程数量,不要动态创建线程

2.使用火焰图分析工具,找出性能黑洞,进行单独优化

3.使用协程代替线程,减少线程的切换,在多任务的情况下效果明显。

4.线程数量与CPU的核数量保持一致,充分利用多核。

5.使用mmap+write替换read+write中的read操作,减少CPU拷贝,节省内存

6. 使用sendfile代替read+write,减少了CPU拷贝,减少上下文切换

7.使用epll代替poll和select

8.减少频繁的进行创建进程等操作,增加内核压力,列如频繁执行system()命令

9.通过异构计算进行计算加速,用gpu、dsp进行高并发计算。

10.利用时间空间进行置换,根据系统资源进行配置。

代码编译层面优化

1.debug->release

2.-O1 -O2 -O3

3.使用静态库性能大于动态库。动态库第一次访问的时候会GOT造成耗时.运行时性能损失5%

4. 使用-lmopt或者-xlibmopt提升使用数学函数的时候的性能。

5.使用-xlic_lib=sunperf来链接经过优化的高速数学例行程序sun性能库提高数学密集型问题的性能

算法层面进行优化

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无锁队列

22.多分支的情况下使用switch

23.使用自旋锁的时候需要注意使用场景避免忙占用

24.传递参数使用指针或引用,不要使用对象拷贝造成大量资源浪费

25.大量日志打印的时候减少printf,printf在没有重定向到/dev/null之前是需要输出到屏幕的,这个很耗资源

26.多线程少用不可重入函数

27.避免递归调用

利用工具进行分析

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

2.使用perf测试cpu命中率

3.使用iostat查看 io占用率

4.使用ptrace、strace查看系统调用

5.使用tcpdump抓包看数据

6.使用cat /pro/meminfo查看vss内存

7.使用top查看排行榜

8.使用free查看资源剩余

9.使用cat /proc/进程id/status 查看进程的状态vss、优先级、线程等

10.使用blktrace分析磁盘等io的性能

11.使用iotop分析磁盘占用率

12.利用dtrace编写d脚本来分析系统的瓶颈。

13.使用sysstat监控和分析系统性能

14.使用watch –d uptime来观察负载的变化情况

15.使用vmstat来分析系统的内存使用情况。

16.使用 hping3构造 TCP/IP 协议数据包,对系统进行安全审计、防火墙 测试

17.使用 execsnoop排查因为不断崩溃、重启等造成的偶尔会遇到系统的CPU使用率和系统平均负载很高,但却找不到哪个程序CPU高的问题。

18.使用pstack跟踪进程栈,找到进程常驻的函数。

19.使用ipc查看消息队列、共享内存和信号量等信息

20.使用cachestat查看cache命中率

21.使用memleak分析内存泄露

22.使用lsof -p 进程id 查看进程打开的文件列表

23.使用filetop跟踪内核中文件的读写情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/475158
推荐阅读
相关标签
  

闽ICP备14008679号