AV在线手机/免费黄视频网站/色婷婷精品大视频在线蜜桃视频/www。三级片。com

當前位置:首頁 > 新聞資訊 SEO優化

C語言程序優化工作流程的注意事項

發表日期:2021-01-18 16:03:15作者來源:瀏覽次數:


  在《【解密】C語言程序優化工作流程(一)》一文中分形科技為大家介紹了關于C語言程序優化工作的三個階段,且對每個階段進行的詳細的介紹。程序員在進行優經工作時需要根據自身的情況來決定需要優化到哪個階段。如有不懂之處可及時的聯系分形科技的在線客服人員,我們將隨時為您提升服務。

  接下來分形科技小編要為大家介紹的是C語言程序優化工作流程的第二部分內容,也就是C語言程序優化工作流程的一些注意事項,共八個點需要編程人員注意。

  C語言程序優化工作流程的注意事項

  1)選用C編譯器提供的優化選項

  在編譯器中提供了分為若干等級和種類的自動優化選項,如下:

  ● -o:使能軟件流水和其他優化方法

  ● -pm:使能程序級優化

  ● -mt:使能編譯器假設程序中沒有數據存儲混淆,可進一步優化代碼。

  ● -mg:使能分析(profile)優化代碼

  ● -ms:確保不產生冗余循環,從而減小代碼尺寸● -mh:允許投機執行● -mx:使能軟件流水循環重試,基于循環次數對循環試用多個方案,以便選擇最佳方案。

  程序員在C語言程序優化工作中應根據實際編譯的程序,選擇合適的優化選項,進行源程序的優化。

  2)減小存儲器相關性

  為使指令達到最大效率,C64X編譯器盡可能將指令安排為并行執行。為使指令并行操作,編譯器必須知道指令間的關系,因為只有不相關的指令才可以并行執行。當編譯器不能確定兩條指令是否相關時,則編譯器假定它們是相關的,從而不能并行執行。

  設計中常采用關鍵字const來指定目標,const表示一個變量或一個變量的存儲單元保持不變。因此,在代碼中加入關鍵字const,可以去除指令間的相關性。例如下面的程序:

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

  for(i=0;i

  由于使用了關鍵字const,消除了指令之間的相關路徑,從而使編譯器能夠判別內存操作之間的相關性,找到更好的指令執行方案。

  3)使用內聯函數(intrinsics)

  內聯函數是C64X編譯器提供的專門函數,它們與嵌入式的匯編指令是一一對應的,其目的是快速優化C源程序。在源程序中調用內聯函數,與調用一般的函數相同,只不過內聯函數名稱前有下劃線作特殊標識。

  當匯編指令功能不易采用C語言表達時,可采用內聯函數表示。例如在定點運算中經常要求出源操作數的冗余符號位數,這一功能如果用C完成的話,需要如下的代碼:

  unsigned int norm(int src1)

  {

  unsigned int sign, result = 0;

  sign = src1 & 0x80000000;

  while(1)

  {

  f(sign)

  {

  if((src1 = src1

  4)short型數據的int處理

  C64XDSP具有雙16bit擴充功能,芯片能在一個周期內完成雙16bit的乘法、加減法、比較、移位等操作。在設計時,當對連續的short型數據流操作時,應該轉化成對int型數據流的操作。

  這樣一次就可以把兩個16位的數據讀入一個32位的寄存器,然后用內部函數來對它們處理(如_sub2等),充分運用雙16bit擴充功能,一次可以進行兩個16bit數據的運算,速度將提升一倍。

  5)盡量少進行函數調用

  函數調用的時候,要將PC和一些寄存器壓棧保存,函數返回時,則將這些寄存器出棧返回,增加了一些不必要的操作。所以一些小的函數,最好是用適當的內聯函數代替直接寫入主函數里,一些調用不多的函數,也可以直接寫入主函數內。

  這樣可以減少不必要的操作,提高速度。但是這樣往往會增加程序的長度,因此它是一種利用空間換取時間的辦法。

  6)盡量使用邏輯運算代替乘除運算

  在DSP里,乘除運算指令的執行時間要遠遠超過邏輯移位指令,尤其是除法指令,在設計的時候,可以根據實際情況,進行一些調整,盡量用邏輯移位運算來代替乘除運算,這樣可以加快指令的運行時間。

  7)軟件流水線技術的使用

  軟件流水線技術主要是用來對一個循環結構的指令進行調度安排,使之成為多重迭代循環并行執行。在編譯代碼時,可以選擇編譯器的-o2或-o3選項,那么編譯器將根據程序盡可能地安排軟件流水線。

  在DSP算法中存在大量的循環操作,因此充分地運用軟件流水線方式,能極大地提高程序的運行速度。但使用軟件流水線還有下面幾點限制:

  ● 循環結構不能包含代碼調用,但可以包含內聯函數。

  ● 循環計數器應該是遞減的。

  ● 循環結構不能包含break,if語句不能嵌套,條件代碼應當盡量的簡單。

  ● 循環結構中不要包含改變循環計數器的代碼。

  ● 循環體代碼不能過長,因為寄存器(32個)的數量有限,應該分解為多個循環。

  在軟件流水線的運用上,應該盡量使復雜的循環分解成簡單的小循環,以避免寄存器的數量不夠;對于過于簡單的循環,應該適當的展開,以增加代碼數量和增加流水線中的迭代指令。

  8)采用指令亂序技術

  C語言程序中,有些指令的執行順序沒有嚴格的要求,程序員可以作出一些位置上的調整,因此可以適當的調整這些指令的位置,穿插于其他的指令之中,從而減小指令的相關性,增加運行時的并行性。

如沒特殊注明,文章均為江浙滬網絡推廣,轉載請注明來自http://www.0898bike.com/html/news/
相關推薦新聞

網站SEO優化不僅僅是做搜索引擎排名,更應該關注的是優化

它還包括充分滿足用戶的需求、清晰的網站導航、完善的在線幫助等,在此基礎上,使網站的功能和信息發揮...

日期:2021-01-09 瀏覽次數:332

貴陽seo優化推廣的方法和途徑你知道多少

SEO優化公司表示云網客是一套操作簡單、高效率、低成本、覆蓋全網絡的網絡營銷推廣系統。貴陽seo優化推...

日期:2021-01-03 瀏覽次數:279

電子郵件營銷用實力詮釋在數字營銷浪潮中重要地位

電子郵件營銷似乎在新興營銷渠道面前相形見絀。時下一個全新的視角對其所扮演的角色又一次定義。營銷者...

日期:2021-01-09 瀏覽次數:266

「紙巾網絡營銷微觀分析」

  紙巾網絡營銷微觀分析: 影響紙巾銷售的宏觀因素-百度知道

日期:2021-01-04 瀏覽次數:265

南寧網絡推廣需要注意哪幾點【找SEO優化】

SEO優化公司表示網絡推廣就是以企業產品或服務為核心內容,建立網站,南寧網絡推廣公司再把這個網站通過...

日期:2021-01-03 瀏覽次數:245

網站推廣-如何提升內容的有效性

SEO優化公司指出的網站推廣是可以使推廣效果覆蓋全網,網絡營銷無死角。不管是PC,還是手機端,不管是搜...

日期:2021-01-03 瀏覽次數:244

新北seo_seo公司

如何做好新北seo_seo公司seo公司是交通seo兄弟們(酈映)看到分析的事情,本次贈送新北seo_seo公司...

日期:2021-01-17 瀏覽次數:234

企業網站首頁設計的四大要求分析

  企業網站是企業為了在互聯網進行宣傳和品牌建設而建設制作的代表企業網形象的網站,該網站...

日期:2021-01-18 瀏覽次數:234

搜索引擎優化的本質是什么?

很多人覺得真的太難了,他們把自己的心思和時間都花在某個關鍵詞上面,排名沒有上升,導致很多人想要放...

日期:2021-01-09 瀏覽次數:232

一份實用的seo整體優化方案

正常情況下單獨優化網站的某一個點無法讓網站發揮出最大的seo效果,通過對網站進行系統化診斷,...

日期:2021-01-16 瀏覽次數:231

相關標簽
網站報價網站報價方案
網站建設解決方案
抖音推廣解決方案 響應式網站建設方案 手機微信網站解決方案 旅游網站解決方案
志強網絡擁有資深設計師團隊和自主系統開發技術團隊,為客戶專業定制企業品牌網站、響應式網站、商城系統、手機微信網站、外貿網站、營銷型網站、旅游網站、微信小程序、APP等。歡迎廣大客戶咨詢!