图片缓存框架

如何设计一个图片缓存框架?

屏幕快照 2018-11-22 下午6.09.07.png

方案:
首先一个manager 管理者 : 内存管理 磁盘管理 网络
codeManager(解码相关) : 图片解码, 图片压缩/解压缩

图片通过什么方式进行读写,过程怎样的?

图片可以用URL的单向hash值 作为Key

图片读取流程:
屏幕快照 2018-11-22 下午6.12.01.png
为何用内存

借鉴系统多级缓存思想,每次下载或磁盘会耗时和节省流量上的损耗

*内存设计上需要考虑哪些问题??

存储size
淘汰策略

存储size改如何设计

10kb以下开辟50个控件缓存
10 -100kb 缓存20张
大于100kb 缓存10张
以队列先进先出方式

存储size
淘汰策略

以队列先进先出方式淘汰策略

屏幕快照 2018-11-22 下午6.17.13.png

LRU算法 (如30分钟内是否使用)

定时检查 ( low )
提高检查触发频率(每次进行读写时检查、前后台切换时)

LRU算法

磁盘设计需要考虑哪些问题?

存储方式
大小限制
淘汰策略

磁盘设计

网络设计需要考虑哪些问题?

图片请求最大并发量
请求超时策略
请求优先级

图片解码采用什么方式?

应用策略模式对不同图片格式进行解码

在哪个阶段进行图片解码??

磁盘读取后
网络请求返回后

线程处理

图片加载流程

你可能感兴趣的:(图片缓存框架)