热门关键词:鸭脖娱乐  
当前位置:首页 > 关于我们 > 荣誉资质
ARM程序设计优化【鸭脖娱乐】
2020-12-28 [47677]

【鸭脖娱乐】程序优化是指软件编程结束后,使用软件开发工具调整和改进程序,使程序充分利用资源,提高运营效率,减少代码大小的过程。根据优化的重点,程序优化可以分为运行速度优化和代码大小优化。

运营速度优化是指在完全控制硬件和软件功能的同时,通过应用程序结构调整等手段减少完成登录任务所需的命令数。在同一个处理器上,速度优化程序比完成登录操作所需的时间短。也就是说,前者比后者的运营效率更高。

代码大小优化是指,如果应用程序需要正确完成所需的功能,则采取措施最大限度地减少程序中的代码量。但是,在实际编程过程中,程序优化的两个目标(运行速度和代码大小)通常相互矛盾。为了提高程序运行效率,果断牺牲存储空间和减少代码量的费用(例如,程序设计中常用的排序替代计算、循环展开等)更容易减少程序代码量。为了增加程序代码量和传输内存空鸭脖娱乐间,可能需要付出减少程序运营效率的代价。

因此,在优化程序之前,应根据实际市场需求确认适当的战略。在处理器资源不足的情况下,不能把重点放在优化操作速度上。如果存储资源有限,则不应优先考虑代码大小优化。1程序运行速度优化程序运行速度优化方法可分为以下主要类别:1.1标准化优化方法(1)增加运算强度乘法/除法2运算用左/右移位操作员代替本质上任何整数,可以用位移和乘法代替乘法。

鸭脖娱乐官方网站

Arm7的乘法和位移可以在一个命令中执行,并且可以比乘法命令持续更长的时间。例如:i=i5可以用I=(I ""2 ") I代替。

用乘法替换乘法:ARM7内核有328个乘数,因此可以用乘法替换乘法,从而节省调用乘法函数的费用。例如:i=pow(i,3.0)可以用i=iii代替。用和运算替换剩下的运算:在某些情况下,可以用和(AND)命令替换剩下的操作员(%),从而提高效率。

例如:i=i%8可以替换为i=i0x07。(2)循环中断条件优化循环结构中,循环中断条件严重影响循环效率,加上arm命令的条件继续运行特性,因此在构建循环中断条件时,应尽可能将其用于count-down-to-zero结构。这样,编译器可以用一个BNE(如果非零则调用函数)命令替换CMP(比较)和BLE(如果大于,则调用函数)命令,从而增加代码大小并减慢操作速度。

(3)用于在inline函数armC中反对inline关键字。如果函数设计为inline函数,则不会用函数体替换函数调用语句,因此函数调用成本不会完全节约。

Inline的第二个缺点是,当函数频繁调用时,代码量会减少。1.2与处理器相关的优化方法(1)保持管道开通从前面的说明中可以看出,管道延迟或阻塞不会影响处理器性能,因此要尽可能保持管道畅通。

管道延误是不可避免的,但可以利用延期周期展开其他运营商。LOAD/STORE命令的自动索引功能旨在利用管道延迟周期。当管道处于延迟周期时,处理器的继续运行单元处于空闲状态,但算术逻辑单元(ALU)和枪管位移器可能处于空闲状态。

在这种情况下,您可以使用它来完成向默认地址寄存器添加偏移的操作员。可用于以下命令: 示例:命令LDRR1、[R2]、#4完成R1=*R2和R2=4两个工作机是后索引(post-indexing)的示例。

以及命令LDRR1,[R2,# 4]!完成的R1=*(R2 4)和R2=4工作机是以前索引(pre-indexing)的示例。装配线切割情况可以通过回收处置等方式得到改善。循环可以考虑到废弃,增加函数调用命令在循环命令中所占的比重,从而提高代码效率。以下是内存复制函数的说明。

Voidmemcopy(char*to,char*from,unsignedintnbytes){ while(nbytes-)* to=* from;}非常简单地假设nbytes是16的倍数(省略其余处理)。上述函数每次处理1个字节时都会扩展标识和函数调用,voidmemcopy(char*to,char*from,unsignedintnbytes){ while(nbytes * to=* frow)* to=* from* to=* fromnbytes-=4;}}这样可以减少循环体中的命令数,但会增加循环数。巩固函数调用命令的负面影响。

利用Arm7处理器32位字符长度的功能,上述代码可能不再调整voidmemcopy(char*to、char*from、unsignedintnbytes) {int * p _ to *while(nbytes){ * p _ to=* p _ from;* p _ to=* p _ from* p _ to=* p _ from* p _ to=* p _ fromNBYTES-=16;}}优化后可以一次处理16个字节。函数调用命令的影响进一步减弱。但是可以看到,调整后的代码随着代码量的增加而增加。

鸭脖娱乐官方网站

(2)寄存器变量CPU使用的寄存器读取速度更快,因此将寄存器分配给变量有助于优化代码和提高操作效率。整数、指针、浮点等变量都可以分配寄存器。结构的一部分或全部也可以分配寄存器。

将寄存器分配给循环体中需要经常采访的变量,也能在一定程度上提高程序效率。:鸭脖娱乐。

本文来源:鸭脖娱乐-www.healthmedic365.com