Vickate iOS記憶體與效能優化 隨筆

2021-07-08 16:06:06 字數 866 閱讀 7086

物件建立

物件的建立會分配記憶體、調整屬性、甚至還有讀取檔案等操作,比較消耗 cpu 資源。盡量用輕量的物件代替重量的物件,可以對效能有所優化。比如 calayer 比 uiview 要輕量許多,那麼不需要響應觸控事件的控制項,用 calayer 顯示會更加合適。

盡量推遲物件建立的時間,並把物件的建立分散到多個任務中去。儘管這實現起來比較麻煩,並且帶來的優勢並不多,但如果有能力做,還是要盡量嘗試一下。如果物件可以復用,並且復用的代價比釋放、建立新物件要小,那麼這類物件應當盡量放到乙個快取池裡復用。

物件調整

物件的調整也經常是消耗 cpu 資源的地方。當檢視層次調整時,uiview、calayer 之間會出現很多方法呼叫與通知,所以在優化效能時,應該盡量避免調整檢視層次、新增和移除檢視。

物件銷毀

tip:把物件捕獲到 block 中,然後扔到後台佇列去隨便傳送個訊息以避免編譯器警告,就可以讓物件在後台執行緒銷毀了。

布局計算

文字計算

用 [nsattributedstring boundingrectwithsize:options:context:] 來計算文字寬高,用 -[nsattributedstring drawwithrect:options:context:] 來繪製文字。

影象的繪製

影象的繪製通常是指用那些以 cg 開頭的方法把影象繪製到畫布中,然後從畫布建立並顯示這樣乙個過程。

- (void)display );

}); }

效能測試記憶體與IO

free m 檢視記憶體使用情況 這個命令比較簡單,m 代表下面的是以m為單位 mem是表示物理記憶體,主要看 mem free代表還有多少記憶體可以。iostat是檢視系統io情況的命令 user 使用者級 應用程式 執行時產生的 cpu 使用率百分比。system 系統級 核心 執行時產生的 c...

linux 效能 記憶體

我們一開始,先從free命令說起。free 命令相對於top 提供了更簡潔的檢視系統記憶體使用情況 free total used free shared buffers cached mem 255268 238332 16936 0 85540 126384 buffers cache 2640...

效能記憶體優化

整個對於linux 的優化,應該區分為從整個層面的系統優化,和從模組角度的演算法效能優化。最終追尋的優化是原來原理層面的追尋。linux系統的優化也是,屬於系統層面的優化。針對特定的場景要求根據優先順序做出取捨關係。二 cpu執行效能 效能優化也就是下面的幾個策略 1 用空間換時間。各種cache如...