打印
[示例代码]

C语言如何提高程序效率

[复制链接]
634|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jimmhu|  楼主 | 2023-4-25 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

程序的效率分两部分:时间效率和空间效率。

时间效率 : 指的是程序运行的速度

空间效率 : 指的是程序占用内存或者外存的大小

对于这两点的把握,我们没有明确的方法。这里给出一些能够达成共识的规则,大家在今后自己编码的时候,可以通过这些规则来衡量自己的代码是否符合要求。

规则1:不要一味地追求程序的效率

如果追求程序效率需要付出降低正确性、可靠性、健壮性、可读性等质量代价,那么可以放弃这部分效率的提高。

规则2:优先提高全局效率

只有整个程序的执行效率提高才有意义,把时间和精力放在某一个不常被调用的小模块优化上得不偿失。

规则3:针对瓶颈部分优化

在实际开发工作中,我们经常遇到一些程序执行时间过长,需要优化。有些人上来就开始逐行检查代码,把认为可能影响效率的地方都尽量修改一遍。这样做不仅浪费时间,更重要的是,常常修改一遍后依然看不到明显的效果。

这种情况下,正确的方法是先找出限制效率的“瓶颈”,在这个部分做有针对性的优化。这么做才事半功倍。

   规则4:先优化数据结构和算法,再优化执行代码

程序的两大要素是算法和数据结构,它们贯穿于程序的始终。因此,对它们的优化能够起到意想不到的良好效果。

规则5:时间效率和空间效率的矛盾

大多数时候,时间效率和空间效率是对立的。这就是程序设计中两个很重要的方**,一个是“以空间换时间”,另一个是“以时间换空间”。此时应当分析那个更重要,作出适当的折中。

早间年,硬件成本比较高,人们大多都采用以时间换空间的策略,花费一些时间,减少内存开销。如今,内存条的价格已经非常便宜了,人们注重的`是软件的友好性,因此大部分时候都是用空间换时间。


使用特权

评论回复
沙发
chenqianqian| | 2023-5-2 08:33 | 只看该作者
C语言的优化空间不大

使用特权

评论回复
板凳
caigang13| | 2023-5-8 22:06 | 只看该作者
先从软件架构设计开始

使用特权

评论回复
地板
biechedan| | 2023-5-10 20:09 | 只看该作者
最主要的措施就是改进算法,如控制循环次数

使用特权

评论回复
5
i1mcu| | 2023-5-10 20:19 | 只看该作者
c语言如何提高递归函数效率              

使用特权

评论回复
6
jackcat| | 2023-5-10 20:27 | 只看该作者
根据具体的业务需求和数据特征,选择适合的数据结构和算法,例如数组、链表、栈、队列等,以及排序、查找、计算等算法。同时,需要考虑算法的时间复杂度和空间复杂度,尽量选择时间复杂度低、空间复杂度小的算法。

使用特权

评论回复
7
febgxu| | 2023-5-10 20:35 | 只看该作者
循环和条件判断是程序执行效率的关键因素,在编写程序时需要注意避免出现不必要的嵌套循环,以及尽量利用短路运算符等方式简化条件判断的过程。

使用特权

评论回复
8
cashrwood| | 2023-5-10 20:41 | 只看该作者
如何让这个程序更有效率一点?              

使用特权

评论回复
9
pentruman| | 2023-5-10 20:55 | 只看该作者
在编写程序完成后,需要对程序进行调试和优化,通过分析CPU占用率、内存使用情况、瓶颈函数等信息,来寻找程序效率的瓶颈,并进行相应的优化。

使用特权

评论回复
10
robincotton| | 2023-5-10 20:59 | 只看该作者
在程序中,需要避免多次进行相同的计算或读取相同的数据,可以采用缓存、预处理、快取等方式来优化程序效率。同时,需要注意内存的分配和释放,避免出现内存泄漏或者堆栈溢出等问题。

使用特权

评论回复
11
bestwell| | 2023-5-10 21:05 | 只看该作者
消除递归,循环强度削弱,使用宏函数或者内联函数

使用特权

评论回复
12
sesefadou| | 2023-5-10 21:10 | 只看该作者
指针和位运算是C语言的高效特性之一,在编写程序时可以利用指针和位运算来加速程序执行,例如使用指针数组代替多维数组、使用按位与或运算来代替乘除法等。

使用特权

评论回复
13
pl202| | 2023-5-10 21:14 | 只看该作者
循环和条件判断是程序执行效率的关键因素,在编写程序时需要注意避免出现不必要的嵌套循环,以及尽量利用短路运算符等方式简化条件判断的过程。

使用特权

评论回复
14
AdaMaYun| | 2023-5-18 14:22 | 只看该作者
就是严谨,避免不必要的运行,避免重复计算

使用特权

评论回复
15
小小蚂蚁举千斤| | 2023-5-21 19:12 | 只看该作者
使用条件传送指令

使用特权

评论回复
16
szt1993| | 2023-5-21 19:58 | 只看该作者
在程序设计时需要注意内存的分配和释放,避免出现内存泄漏或者堆栈溢出等问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

3338

帖子

3

粉丝