restrict的作用就是限制乙個指針對一塊記憶體的訪問,進一步說就是如果一塊記憶體區域通過乙個受限制指標訪問,那麼它就不能通過另乙個受限指標訪問。
引入restrict的目的是確保同一塊記憶體上沒有其它引用,讓編譯器更好地優化指令,生成更有效的彙編**。
把#pragma must_iterate( , , )放在迴圈體之前,告知開發板迴圈次數,改善軟體流水
must_iterate告訴編譯器迴圈的屬性,但是這些屬性必須是真實的,不然程式可能執行出錯。此指令主要用於優化c函式迴圈,一般情況下,只要有迴圈都最好帶上此指令
#pragma must_iterate(min, max, multiple);其中multiple引數必須有,迴圈執行次數必是multiple的整數倍。
這個資訊對編譯器使用軟體流水技術非常重要
那min和max是最大和最小迴圈次數
const short *restrict x;
//assumption: vectors x and h are double-word aligned
_nassert((int)x % 8 == 0);
是個斷言語句。對條件進行判斷,如果為1,通過,為0,則丟擲異常。
DSP程式設計優化總結
1 多重迴圈拆成單層迴圈,減少迴圈層數 例如,雙重迴圈內乙個cycle只使用了乙個乘法器,拆成單層迴圈後,乙個cycle可使用2個乘法器,充分利用dsp乘法器資源,同時運算速度也會加快 2 迴圈次數少的放在外層迴圈,迴圈次數多的放在記憶體迴圈 3 二維陣列的二重迴圈 二維陣列的行迴圈放在外層迴圈,列...
優化系列 之DSP優化方法
date 2019 2 18 1 參考 ti dsp tms320c66x學習筆記之dsp優化經驗 2 dsp介紹和特點 dsp是英文digital signal process的簡稱,即數字訊號處理器,dsp晶元內部採用程式和資料分開的哈佛結構,具有特殊的dsp指令和不同的功能單元,實現多級流水操...
MySQL優化經驗
資料型別盡量用數字型,數字型比字元型的快 2 選擇正確的表引擎 myisam 適合於一些需要大量查詢的應用,但其對於有大量寫操作並不是很好。甚至你只是需要 update 乙個字段,整個表都會被鎖起來,而別的程序,就算是讀程序都無法操作直到讀操作完成。另外,myisam 對於 select count...