中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

C語言程序編輯中快程序速度的方法

2022-05-08    分類: 網(wǎng)站建設(shè)

由于C語言編譯出來的程序,不是最有效率的匯編語言,它沒有辦法達到實時播放。所以程序員為了要使程序執(zhí)行的速度能夠加快,以好化的狀態(tài)使其能夠達到實時播放的速度。C語言編譯出來的程序,不是最有效率的匯編語言,它沒有辦法達到實時播放。所以程序員為了要使程序執(zhí)行的速度能夠加快,以好化的狀態(tài)使其能夠達到實時播放的速度。

C6x的編譯器提供了好化的指令,如在編譯時加上-o3的參數(shù),就可以用軟件來分析程序員的程序是否有可以改進的地方。如此一來,在產(chǎn)生組語的匯編語言檔案之前,編譯器就會對程序員所寫的C語言程序不斷的進行編譯,也會對程序中的循環(huán)部份重新編排,產(chǎn)生另一較有效率的核心循環(huán),以最有效率的方式重新編排程序,來加快程序速度。




下面創(chuàng)新互聯(lián)就為在家介紹一下C語言程序編輯中快程序速度的方法


方法一、把浮點運算改成定點運算


因為C6x DSP板并不支持浮點運算,但我們的原始程序代碼是浮點運算的格式,所以必須改成定點運算,修改后的執(zhí)行速度也會加快很多。我們可以采用Q-format規(guī)格來表示浮點運算。


Q-format的相關(guān)原理是:定點DSP使用固定的小數(shù)點來表示小數(shù)部份的數(shù)字,這也造成了使用上的限制,為了要分類不同范圍的小數(shù)點,我們必須使用Q-format的格式。
方法二、建立表格(table)
原來程序的設(shè)計是除了要讀AAC的檔案外,在譯碼時,還要再另外讀取一些C語言程序代碼的內(nèi)容再做計算,如讀取一些數(shù)值做sin、cos、exp的運算,但是為了加快程序的執(zhí)行速度,故將這這些運算的結(jié)果建成表格,內(nèi)建在程序中,可以不必再做額外的計算動做,以加速程序。
方法三、減短程序的長度
1、去除Debug的功能
原本程序在Debug的階段時,就加了許多用來偵測錯誤的部份,程序Debug完后,已經(jīng)沒有錯誤發(fā)生,所以就可以把這些部份給去除,以減少程序的長度,也可以減少程序執(zhí)行時的時脈數(shù),加快程序的速度。
2、去除計算時脈(clock)功能
原本程序可以計算執(zhí)行程序所需的時脈數(shù),我們也可以把這些部份給去除,如果有需要計算時脈時,我們可以用C6x的工具軟件來作,功能更強大。
方法四、減少I/O 過程
原本在做譯碼的動作時,是先讀取AAC檔案的一部份做譯碼,譯碼完成后再讀取下一部份,再做譯碼。由于C6x的板子跟PC做檔案讀取時相當?shù)木徛x取的動作占了大部份的時間,所以就將程序改成先將AAC檔案全部讀到C6x的內(nèi)存中,再做譯碼?;蚴菍AC建成表格(約1MB),以避免DSP板上的內(nèi)存不足。
方法五、減少子程序的呼叫
在呼叫子程序時,必須先將緩存器的內(nèi)容放到堆棧(stack)中,而從子程序返回時,也要將這些緩存器原本的內(nèi)容從堆棧中取出來。但是有些子程序的長度很短,而且被呼叫的次數(shù)又很多,往往幾個時脈就可以完成卻浪費時間在存取堆棧的內(nèi)容上,所以干脆將這些很短的子程序直接寫在主程序當中,以減少時脈數(shù)。
方法六、寫匯編語言
雖然由C語言所編譯出來的匯編語言可以正確無誤的執(zhí)行,但是這個匯編語言卻不是最有效率的寫法,所以為了增加程序的效率,于是在某些地方,例如一些被呼叫很多次且程序代碼不長的函式(function),必須改以自己動手寫匯編語言來取代。
方法七、利用平行處理的觀念
C6x是一顆功能強大的處理器,它CPU的內(nèi)部提供了八個可以執(zhí)行不同指令的單元,也就是說最多可以同時處理八個指令。所以如果我們可以用它來作平行處理,我們就可以大大的縮短程序執(zhí)行的時間,最有效率的來利用它來作解碼的動作。

文章題目:C語言程序編輯中快程序速度的方法
URL地址:http://www.rwnh.cn/news12/151212.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計網(wǎng)站制作、網(wǎng)站導(dǎo)航、做網(wǎng)站、虛擬主機、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
资中县| 建平县| 紫金县| 赤壁市| 孟连| 永定县| 隆德县| 高青县| 邛崃市| 繁峙县| 平邑县| 叙永县| 黔江区| 乐业县| 个旧市| 崇左市| 邵武市| 苍山县| 乐东| 彝良县| 无棣县| 崇义县| 斗六市| 孟州市| 江城| 凤山市| 玉龙| 浮梁县| 屏东市| 华阴市| 昔阳县| 讷河市| 固镇县| 芜湖市| 蒙城县| 紫阳县| 遂溪县| 长治市| 休宁县| 昭通市| 甘肃省|