如何設(shè)計(jì)一個(gè)圖片緩存框架攀操?
方案:
首先一個(gè)manager 管理者 : 內(nèi)存管理 磁盤管理 網(wǎng)絡(luò)
codeManager(解碼相關(guān)) : 圖片解碼, 圖片壓縮/解壓縮
圖片通過什么方式進(jìn)行讀寫醋闭,過程怎樣的哪廓?
圖片可以用URL的單向hash值 作為Key
圖片讀取流程:
為何用內(nèi)存
借鑒系統(tǒng)多級(jí)緩存思想沙热,每次下載或磁盤會(huì)耗時(shí)和節(jié)省流量上的損耗
*內(nèi)存設(shè)計(jì)上需要考慮哪些問題?摊册?
存儲(chǔ)size
淘汰策略
存儲(chǔ)size改如何設(shè)計(jì)
10kb以下開辟50個(gè)控件緩存
10 -100kb 緩存20張
大于100kb 緩存10張
以隊(duì)列先進(jìn)先出方式
淘汰策略
以隊(duì)列先進(jìn)先出方式淘汰策略
LRU算法 (如30分鐘內(nèi)是否使用)
定時(shí)檢查 ( low )
提高檢查觸發(fā)頻率(每次進(jìn)行讀寫時(shí)檢查肤京、前后臺(tái)切換時(shí))
磁盤設(shè)計(jì)需要考慮哪些問題?
存儲(chǔ)方式
大小限制
淘汰策略
網(wǎng)絡(luò)設(shè)計(jì)需要考慮哪些問題茅特?
圖片請(qǐng)求最大并發(fā)量
請(qǐng)求超時(shí)策略
請(qǐng)求優(yōu)先級(jí)
圖片解碼采用什么方式忘分?
應(yīng)用策略模式對(duì)不同圖片格式進(jìn)行解碼
在哪個(gè)階段進(jìn)行圖片解碼?白修?
磁盤讀取后
網(wǎng)絡(luò)請(qǐng)求返回后