架構篇 準備工作

2021-04-19 09:52:58 字數 1500 閱讀 5795

要點:

工欲善其事,必先利其器。在優化前必須做好一些準備工作,尤其是工具的準備。包括測試集

(test suite),

日誌(log

),效能評估工具(

profiler

),原始碼閱讀工具,版本控制工具等。

討論:在開始優化前,必須準備好工具。這不僅能提高工作效率,而且是保證優化朝著正確方向前進的必要條件。 1,

測試集(

test suite)

測試集包括測試例子(

test case

)和測試指令碼(

test script)。

test case

分為兩大部分,一部分是保證優化結果正確的

,bit-exact test case

,顧名思義,

bit-exact

就是要確保每次優化的結果必須和基準(

benchmark

performance test case

。無論是

bit-exact test case

還是performance test case

test clip),

這些test clip

的包含了編碼器的各種引數選項,就具有很好的覆蓋面。在工程實踐中,解碼器程式設計師需要了解編碼器的使用,會調整各類編碼引數,以便根據需要製作相應的

test clip。

測試指令碼對於提高測試效率是非常有用的。在

pc上寫指令碼(如批處理檔案)大家都比較熟悉了。在嵌入式系統中可以自己開發乙個指令碼解析器。指令碼驅動的測試大大提高了工作效率。所以一定要重視測試指令碼的使用。 2,

日誌(log)

整個系統使用統一的日誌是非常必要的。在架構級可以通過日誌快速鎖定問題所在模組。在模組級可以通過日誌進一步確定問題根源。尤其對模組級的優化,頻繁的優化常常會導致

non-bit-exact

問題,這時候就需要用現有版本的日誌與基準版本的日誌進行對比,查出根源。 3,

效能評估工具(

profiler)

效能評估工具如大家熟悉的

intel

的vtune

,可以幫助程式設計師找出程式的熱點分布,以及導致熱點的各種因素,如過度的

i/o讀寫,

cache miss,

分支**失敗等。當然評估工具可以作為乙個重要參考,但也不能迷信它的威力,有時候它也會給出錯誤的提示。 4,

**閱讀工具

很多程式設計師都不滿意嵌入式系統的開發環境。他們選擇第三方的**閱讀工具如

source insight

等來閱讀編輯**,這些**閱讀工具對於加快程式設計師理清程式結構,理解**細節很有幫助。 5,

版本管理工具

無論對哪種型別的開發,版本管理工具都是必備的。對與優化來說,頻繁的提交新的版本是個重要的技術策略。當某個版本出現

non-bit-exact

問題,可以找到最近的乙個

bit-exact

的版本,比較一下這兩個版本的差異就可以確定問題。

準備工作 畫具篇

班班說兩句 相信大家都看過試聽課啦,試聽片段裡老師的鉛筆勾線是不是印象很深咧,初學畫畫的同學們肯定要問了,盡量對稱怎麼盡量嘛,完全畫不了老師那樣飽滿圓潤的 愛心啦!其實這些都是靠我們平時練習才能有的效果哦!所以跟著班班一起來練習畫畫吧!從最簡單的內容來練手,相信你到了正式開課的時候,手就會很穩啦!第...

C lua準備工作

ubuntu源裡的lua是5.0的.而最新的是5.2.如果只是學習lua語法什麼的直接apt get就好了.不過如果想做c lua的嵌入工作.就只能自己下原始碼編譯了 步驟 1.依賴的庫 readline,ncurses 這兩個庫可以從網上下原始碼然後編譯安裝.這樣其實最好了 如果不嫌源裡的舊.其實...

單據準備工作

虛擬機器 uap studio nc home 單據開發 基於studio的 單開發。擴充套件開發 對 單進行夥伴級拓展。報表平台 基於 單的分組統計和交叉統計。輕量化 交通費報銷開發。報表平台 語義模型 自由報表 基於模型的開發 實體 列舉及他們之間的關係。實體屬性 資料型別 約束 與業務介面的對...