提升C++程序运行速度的一些方法

1.C++程序运行速度与什么有关

一个C++程序的运行,与许多因素相关。比如,硬件CPU和内存,编译器等。
这里,主要是分析程序员可控值的影响因素,从代码的层面分析。

代码和数据是程序的基本元素。因此,数据的类型和数据的处理是影响程序运行速度的主要原因。
比如,选用哪种合适的数据类型(涉及到内存的存储和之后的运算);变量在内存上的分配方式如何(堆或者栈,静态或者动态);程序的处理逻辑如何(是否可以进一步优化,涉及到算法);

2.C++提升程序运行速度的一些方法

a.内存充足的情况下,对于一些变量的内存分配由动态分配内存改为静态分配内存

b.对于一些数值的数据,整型INT的处理速度远快于浮点型

c.往磁盘的read或write都比较耗费时间。访问速度:cpu寄存器 > cache > 内存 > 虚拟内存 > 磁盘其它部位

d.数据类型中,能随机(直接)访问的,不用顺序访问。比如,数组是随机访问,vector(向量)是顺序访问的。要根据需要合理使用合适的数据类型,如数组虽然是顺序访问,但因其是顺序存储,对数组中某个元素删除时,后面的元素依次往前移动,把前面的元素覆盖掉。这就多花费了一点时间。

e.对于内存,每个malloc都要对应一个free,每一个new要对应一个delete,每一个new[ ]要对应一个delete[ ]

f.如果程序中,存在多轮的嵌套循环,考虑是否可以优化

g.函数参数传递时,尽量以传递常引用,代替传值(内置类型等除外,对于内置类型,以及STL的迭代器和函数对象pass-by-value往往更高效)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同志啊为人民服务!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值