由于C语言编译出来的程序,不是最有效率的汇编语言,它没有办法达到实时播放。所以程序员为了要使程序执行的速度能够加快,以好化的状态使其能够达到实时播放的速度。C语言编译出来的程序,不是最有效率的汇编语言,它没有办法达到实时播放。所以程序员为了要使程序执行的速度能够加快,以好化的状态使其能够达到实时播放的速度。
C6x的编译器提供了好化的指令,如在编译时加上-o3的参数,就可以用软件来分析程序员的程序是否有可以改进的地方。如此一来,在产生组语的汇编语言档案之前,编译器就会对程序员所写的C语言程序不断的进行编译,也会对程序中的循环部份重新编排,产生另一较有效率的核心循环,以最有效率的方式重新编排程序,来加快程序速度。
下面创新互联就为在家介绍一下C语言程序编辑中快程序速度的方法
方法一、把浮点运算改成定点运算
因为C6x DSP板并不支持浮点运算,但我们的原始程序代码是浮点运算的格式,所以必须改成定点运算,修改后的执行速度也会加快很多。我们可以采用Q-format规格来表示浮点运算。
Q-format的相关原理是:定点DSP使用固定的小数点来表示小数部份的数字,这也造成了使用上的限制,为了要分类不同范围的小数点,我们必须使用Q-format的格式。
方法二、建立表格(table)原来程序的设计是除了要读AAC的档案外,在译码时,还要再另外读取一些C语言程序代码的内容再做计算,如读取一些数值做sin、cos、exp的运算,但是为了加快程序的执行速度,故将这这些运算的结果建成表格,内建在程序中,可以不必再做额外的计算动做,以加速程序。
方法三、减短程序的长度1、去除Debug的功能原本程序在Debug的阶段时,就加了许多用来侦测错误的部份,程序Debug完后,已经没有错误发生,所以就可以把这些部份给去除,以减少程序的长度,也可以减少程序执行时的时脉数,加快程序的速度。
2、去除计算时脉(clock)功能原本程序可以计算执行程序所需的时脉数,我们也可以把这些部份给去除,如果有需要计算时脉时,我们可以用C6x的工具软件来作,功能更强大。
方法四、减少I/O 过程原本在做译码的动作时,是先读取AAC档案的一部份做译码,译码完成后再读取下一部份,再做译码。由于C6x的板子跟PC做档案读取时相当的缓慢,读取的动作占了大部份的时间,所以就将程序改成先将AAC档案全部读到C6x的内存中,再做译码。或是将AAC建成表格(约1MB),以避免DSP板上的内存不足。
方法五、减少子程序的呼叫在呼叫子程序时,必须先将缓存器的内容放到堆栈(stack)中,而从子程序返回时,也要将这些缓存器原本的内容从堆栈中取出来。但是有些子程序的长度很短,而且被呼叫的次数又很多,往往几个时脉就可以完成却浪费时间在存取堆栈的内容上,所以干脆将这些很短的子程序直接写在主程序当中,以减少时脉数。
方法六、写汇编语言虽然由C语言所编译出来的汇编语言可以正确无误的执行,但是这个汇编语言却不是最有效率的写法,所以为了增加程序的效率,于是在某些地方,例如一些被呼叫很多次且程序代码不长的函式(function),必须改以自己动手写汇编语言来取代。
方法七、利用平行处理的观念C6x是一颗功能强大的处理器,它CPU的内部提供了八个可以执行不同指令的单元,也就是说最多可以同时处理八个指令。所以如果我们可以用它来作平行处理,我们就可以大大的缩短程序执行的时间,最有效率的来利用它来作解碼的动作。
新闻标题:C语言程序编辑中快程序速度的方法
网页链接:https://www.cdcxhl.com/news/151212.html
成都网站建设公司_创新互联,为您提供网站收录、服务器托管、软件开发、微信小程序、小程序开发、网页设计公司
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联