UIImage 載入方式及優化

2021-07-25 01:44:10 字數 622 閱讀 9347

一、載入方式

1. 快取載入方式

uiimage *image = [uiimage imagenamed:imagefilename];

載入後,會自動加入系統快取中,並不會立即釋放到記憶體。加快程式的執行減少io操作,但對於專案中只用到一次的,會導致程式的記憶體使用增加。

2. 非快取載入方式

+ (uiimage *)imagewithcontentsoffile:(nsstring *)path

+ (uiimage *)imagewithdata:(nsdata *)data

3. 何時使用imagenamed方法

a. 資源反覆使用到,占用記憶體少。如按鈕背景。

b. 一般只使用一次或者資源較大,這時不應該使用。(如使用者的**或背景圖)

二、大量載入策略

1. 快取策略

採用系統現有的快取機制nscache,將強制解碼後的(位圖)快取,監聽記憶體警告訊息,及時清空快取

2. 儲存策略

3. 顯示的優先順序排程

[self.connection scheduleinrunloop:[nsrunloop currentrunloop] formode:nsrunloopcommonmodes];

UIImage 載入效能優化

uiimage 存在 延遲解壓的問題。這會占用時間。一旦檔案被載入就必須要進行解碼,解碼過程是乙個相當複雜的任務,需要消耗非常長的時間。解碼後的將同樣使用相當大的記憶體。用於載入的cpu時間相對於解碼來說根據格式而不同。對於png來說,載入會比jpeg更長,因為檔案可能更大,但是解碼會相對較快,而且...

細講UIImage載入方式

原文 關於本地uiimage的載入問題,還是需要注意的。不同的載入處理方式,在效率和效能上還是有差異的。今天,我們來講講uiimage的載入應該選擇什麼樣的api來載入!這兩種api分別是 大量使用 initwithcontentsoffile 方式來載入,會增加cpu的開銷,所以我們需要根據特定場...

LRU優化特效載入及快取

lru是least recently used的縮寫,即最近最少使用,常用於頁面置換演算法,是為虛擬頁式儲存管理服務的。簡單說就是快取最近最常使用的服務或物件。先來個很爛的草圖 但能說明問題 這個是整體的特效載入優化的流程圖。主要就是對池子的操作,快取起最近最常使用的特效。using system ...