北京网站公司建设_C语言程序优化工作流程的注意事项

2019-11-05 17:39:09 北京网络公司
  接下来亿远科技小编要为大家介绍的是C语言程序优化工作流程的第二部分内容,也就是C语言程序优化工作流程的一些注意事项,共八个点需要编程人员注意。
  6)尽量使用逻辑运算代替乘除运算
  这样可以减少不必要的操作,提高速度。但是这样往往会增加程序的长度,因此它是一种利用空间换取时间的办法。

  软件流水线技术主要是用来对一个循环结构的指令进行调度安排,使之成为多重迭代循环并行执行。在编译代码时,可以选择编译器的-o2或-o3选项,那么编译器将根据程序尽可能地安排软件流水线。
  C语言程序中,有些指令的执行顺序没有严格的要求,程序员可以作出一些位置上的调整,因此可以适当的调整这些指令的位置,穿插于其他的指令之中,从而减小指令的相关性,增加运行时的并行性。




  ● 循环计数器应该是递减的。
  for(i=0;i
  ● -o:使能软件流水和其他优化方法
  在DSP里,乘除运算指令的执行时间要远远超过逻辑移位指令,尤其是除法指令,在设计的时候,可以根据实际情况,【北京公司网站建设方案:15611115563】,进行一些调整,尽量用逻辑移位运算来代替乘除运算,这样可以加快指令的运行时间。
  {

  这样一次就可以把两个16位的数据读入一个32位的寄存器,然后用内部函数来对它们处理(如_sub2等),充分运用双16bit扩充功能,一次可以进行两个16bit数据的运算,速度将提升一倍。

  void vecsum(short *sum,short*in1,short*in2,unsigned int N){int i;


  7)软件流水线技术的使用

  由于使用了关键字const,消除了指令之间的相关路径,从而使编译器能够判别内存操作之间的相关性,找到更好的指令执行方案。
  8)采用指令乱序技术


  为使指令达到最大效率,C64X编译器尽可能将指令安排为并行执行。为使指令并行操作,编译器必须知道指令间的关系,因为只有不相关的指令才可以并行执行。当编译器不能确定两条指令是否相关时,则编译器假定它们是相关的,从而不能并行执行。
  设计中常采用关键字const来指定目标,const表示一个变量或一个变量的存储单元保持不变。因此,在代码中加入关键字const,可以去除指令间的相关性。例如下面的程序:
  ● -mg:使能分析(profile)优化代码

分享数:1981   在《【解密】C语言程序优化工作流程(一)》一文中亿远科技为大家介绍了关于C语言程序优化工作的三个阶段,且对每个阶段进行的详细的介绍。程序员在进行优经工作时需要根据自身的情况来决定需要优化到哪个阶段。如有不懂之处可及时的联系亿远科技的在线客服人员,我们将随时为您提升服务。
  {
  while(1)


  当汇编指令功能不易采用C语言表达时,可采用内联函数表示。例如在定点运算中经常要求出源操作数的冗余符号位数,这一功能如果用C完成的话,需要如下的代码:

  内联函数是C64X编译器提供的专门函数,它们与嵌入式的汇编指令是一一对应的,其目的是快速优化C源程序。在源程序中调用内联函数,【seo北京:15611115563】,与调用一般的函数相同,只不过内联函数名称前有下划线作特殊标识。
  程序员在C语言程序优化工作中应根据实际编译的程序,选择合适的优化选项,进行源程序的优化。
  {