Linux驅動開發需要注意的點 KO大小 記憶體管理

2021-08-15 23:35:19 字數 558 閱讀 1176

因為做了大量除錯的工作,呵呵,所以對**質量要求比較高。

1.不要想不通就寫**,不要為了存粹的解決問題而加**,不要忽視任何一種場景可能,因為躲得了一時,躲不了一波,bug遲早會被挖出來的,到時候更加苦逼。

2.記憶體是個很嚴肅的問題,不要直接呼叫系統函式,最好把malloc、kmalloc、kzalloc、vmalloc封裝一層,入參module id,size,name,統計好申請的記憶體,可以用proc檢視,除錯等,進行乙個管理,這樣可以對記憶體做乙個很好的管理。

3.關於ko的大小,盡可能動態申請記憶體吧。雖然可能會造成程式執行效率變慢,因為申請記憶體耗時也不少。不過像很大的全域性資料,可以載入ko的時候申請,這樣既不會降低效能,也能裁剪ko。無用的函式、變數也不要保留。積少成多。

4.記憶體的使用,嵌入式記憶體都比較少,尤其是成熟的成品,比價效比的時候,省記憶體就很重要了,不要很隨意的申請記憶體,很多場景不需要,就不要申請哦,做好解耦。

5.很多奇淫技巧,陣列的大小申請4/8的倍數,結構體小元素放前面,移位代替乘除法,switch比較多用查表,降低圈複雜度,防止棧溢位,注意32位晶元和64位晶元**的移植(位址和long)。

平時開發需要注意的點

一 牢記瀏覽器常見bug的處理方式,在 第一次編寫時就考慮解決相容問題 其實在第一次編寫 時,就已經可以開始考慮元素的樣式是否會引起其他瀏覽器的相容問題,防範於未然。舉個常見的例子 ie中float元素如果同時設定了margin值,此時margin的值會變為雙倍,解決辦法是在該元素中加入displa...

C 需要注意點

11 設定static成員變數初值時,不受任何訪問許可權的束縛。可以再還沒有誕生任何物件的時候就處理static型別成員變數,但首先必須初始化它。2 只要access level允許,任何函式都可以訪問static成員變數。但如果你希望在產生任何object之前就訪問其class的private s...

NGUI 需要注意點

如果滾動檢視中的item數量太少,還不能夠超出滾動檢視,那麼cancel drag if fits最好要勾選,否則檢視會被拖動,那樣使用者體驗會不好 只有當滾動條目的內容長度超出滾動區域後,才能夠拖動 2 例項化預設體 指定父物件 然後再transform.localscale new vecter...