效能優化總結

2021-07-22 16:48:10 字數 725 閱讀 5887

儘量減少布局的層級,有選擇的使用功能較為複雜,效能較低的viewgroup,如:relativelayout,但推薦使用relativilayout來替換多重巢狀的linearlayout,減少布局層級。推薦使用,和viewstub來布局。
避免在view的ondraw中進行大量的操作。主要體現於兩個方面:

不要在ondraw中建立新的區域性物件,因為ondraw可能會被頻繁的呼叫,這時將會產生大量的臨時物件,不僅會占用更多的記憶體,還會頻繁的引起系統的gc,降低執行效率。

不要在ondraw中執行耗時操作,或大量迴圈,儘管每次迴圈都很輕量級,但對大量迴圈仍然會搶占很多時間片,導致繪製不流暢。

什麼是記憶體洩漏:記憶體洩漏只動態申請的記憶體空間在使用完畢後沒有及時釋放,從而導致程式所需記憶體越來越多,嚴重情況會導致oom。    

記憶體洩露場景:

資源使用完畢沒有關閉:資料庫cursor,流等

靜態變數、單例持有物件的引用會使該物件無法銷毀

無限迴圈的屬性動畫也會使activity無法銷毀

context被生命週期常於activity的物件持有導致activity無法銷毀

盡量採用執行緒池,避免程式中存在大量的thread。執行緒池會對內部的執行緒進行復用,還可以控制線程的最大併發數量。
內容較多,佔坑待補

效能優化總結

最近在查效能優化,總結了以下幾條 第一 在接受訊息 socket地方 打上每條訊息的消耗 這個能快速定位到 哪些函式消耗的比較高 第二 在遊戲主迴圈中,打上沒幀的消耗 如果消耗是穩定網 的 說明一定有物件建立了沒有刪掉 並且這個物件還在 主 迴圈中 可以檢查一下 註冊的各地地方的定時器 陣列是否有物...

js 效能優化總結

1 盡量不要使用 eval alert hello world var sayhi new function alert hello world settimeout alert hello world 100 全域性變數 for x in list 3 減少dom訪問。重複訪問dom低效 for ...

iOS App 效能優化總結

啟動過程中做的事情越少越好 盡可能將多個介面合併 不在ui執行緒上作耗時的操作 資料的處理在子執行緒進行,處理完通知主線程重新整理節目 在合適的時機開始後台任務 例如在使用者指引節目就可以開始準備載入的資料 盡量減小包的大小 優化方法 量化啟動時間 啟動速度模組化 輔助工具 友盟,聽雲,flurry...