打印
[经验分享]

代码优化需要注意的地方

[复制链接]
2374|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nomomy|  楼主 | 2023-9-17 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


越靠近底层,代码量越有限的地方(如某硬件的驱动),是越适合使用全局变量的,理由如下:
1,尽量减少全局变量的使用,目的是以效率为代价,优化代码可读性,同时减少BUG出现概率。但对于单个硬件的驱动,其代码量是十分有限的,通常是一个.c一个.h文件,不超过2-3百行,逻辑十分清晰简单,同时一次创作完成测试没BUG后几乎不用修改。此时使用全局变量,并用static修饰限制其只在本驱动.c文件中可见,对代码可读性、健壮性几乎没有负面影响,趋利避害,何乐而不为呢?
2,对于底层驱动,其稳定性是十分重要的。使用全局变量,可以提前分配数据的存储位置,达到“过了编译就能运行”的效果。而使用栈中的临时变量,或是动态分配的内存,都有可能因为运行时的RAM使用状态无法预知,导致程序失效。如果是一般软件遇到此类错误,无非是抛出异常或程序闪退,而驱动程序遇到此类错误的后果相较是更严重的,轻则导致某个硬件失效,重则导致硬件损坏。
3,对于底层软件,其效率也是十分重要的。顶层的每一个操作,最终都要执行若干个底层的函数,如果顶层软件就十分复杂,底层函数的效率就显得更加重要。此时通过全局变量减少一次栈操作、减少一次函数调用,就能对整体的效率产生很大的影响。尤其是某些硬件驱动时间要求精确到时钟周期级,此时多一次上下文切换、多一次函数调用的开销都是要精打细算的。
但是,一个项目也不可能只有底层驱动。例如用STM32做一块手表。顶层面向用户的GUI框架、应用程序等,显然是不适合使用大量全局变量。更应该采用一些优化方法保证程序的可读性和易维护性。


使用特权

评论回复
沙发
1988020566| | 2023-10-6 20:42 | 只看该作者
算法和数据结构是程序设计的重要部分,使用高效的算法和数据结构可以提高程序的运行效率

使用特权

评论回复
板凳
everyrobin| | 2023-10-6 21:10 | 只看该作者
函数调用是程序中常用的操作,但是过度的函数调用会消耗大量的时间和资源。优化函数调用的方法包括减少不必要的函数调用、使用内联函数、使用全局变量等。

使用特权

评论回复
地板
sheflynn| | 2023-10-6 21:48 | 只看该作者
在程序中,尽量减少不必要的计算,避免重复计算和重复执行相同的操作。

使用特权

评论回复
5
sdCAD| | 2023-10-6 22:36 | 只看该作者
循环结构是程序中常用的结构,但是过度的循环会消耗大量的时间和资源。优化循环结构的方法包括减少循环次数、使用更高效的循环结构等。

使用特权

评论回复
6
wwppd| | 2023-10-7 22:03 | 只看该作者
现代的编译器通常提供了一些优化选项,可以根据需要启用这些选项。例如,开启编译器的优化选项可以让编译器自动进行一些优化,提高代码的执行效率。

使用特权

评论回复
7
wilhelmina2| | 2023-10-8 18:57 | 只看该作者
选择正确的算法和数据结构可以大大提高程序的效率。

使用特权

评论回复
8
sdCAD| | 2023-10-8 19:04 | 只看该作者
数调用和参数传递会增加额外的开销,影响代码的执行效率。可以尽量减少函数的调用次数,避免不必要的函数嵌套,合并函数等来提高代码的效率。

使用特权

评论回复
9
wengh2016| | 2023-10-8 19:37 | 只看该作者
在进行代码优化时,要避免过度优化。过度优化可能会导致代码可读性降低、维护困难等问题。优化应该在保证代码正确性和可读性的前提下进行。

使用特权

评论回复
10
uytyu| | 2023-10-8 20:01 | 只看该作者
单片机的内存和存储器资源有限,因此优化代码以减少内存和存储器的使用是很重要的。可以考虑使用局部变量代替全局变量、合并重复的代码片段、使用位操作代替字节操作等来减少内存和存储器的占用。

使用特权

评论回复
11
timfordlare| | 2023-10-8 20:41 | 只看该作者
选择合适的数据类型可以提高代码的效率和节省存储空间。例如,使用整型数据类型代替浮点型数据类型、使用无符号整数代替有符号整数等。

使用特权

评论回复
12
geraldbetty| | 2023-10-8 20:49 | 只看该作者
尽可能减少不必要的内存分配和释放操作

使用特权

评论回复
13
sesefadou| | 2023-10-8 21:43 | 只看该作者
代码优化应该与代码的可读性和可维护性相结合。

使用特权

评论回复
14
mikewalpole| | 2023-10-8 21:56 | 只看该作者
虽然代码优化可以提高程序的运行效率,但是过于复杂的优化代码可能会影响代码的可读性和可维护性。

使用特权

评论回复
15
primojones| | 2023-10-8 22:52 | 只看该作者
尽可能减少循环次数,或者使用更高效的算法来代替循环。

使用特权

评论回复
16
单片小菜| | 2023-10-10 09:59 | 只看该作者
其实老程序员而言,代码不需要进行优化,如果资源十分的紧张。

使用特权

评论回复
17
lzmm| | 2023-10-10 20:13 | 只看该作者
如果一个计算在循环内或者在多个地方需要用到,可以考虑把它提取出来作为一个单独的函数或者变量,避免重复计算。

使用特权

评论回复
18
mikewalpole| | 2023-10-10 20:25 | 只看该作者
序运行的重要资源,合理的内存管理可以提高程序的运行效率。优化内存使用的方法包括使用指针、避免内存泄漏、使用缓存等。

使用特权

评论回复
19
everyrobin| | 2023-10-10 20:47 | 只看该作者
需要尽量减少内存的使用。可以通过减少不必要的变量和数据结构等方式来实现。

使用特权

评论回复
20
eefas| | 2023-10-10 21:07 | 只看该作者
过大的数据结构会占用过多的内存,导致程序运行缓慢。在可能的情况下,应该尽量减少数据结构的规模。

使用特权

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

本版积分规则

30

主题

1374

帖子

0

粉丝