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

方案:
首先一个manager 管理者 : 内存管理 磁盘管理 网络
codeManager(解码相关) : 图片解码, 图片压缩/解压缩
图片通过什么方式进行读写,过程怎样的?
图片可以用URL的单向hash值 作为Key
图片读取流程:

为何用内存
借鉴系统多级缓存思想,每次下载或磁盘会耗时和节省流量上的损耗
*内存设计上需要考虑哪些问题??
存储size
淘汰策略
存储size改如何设计
10kb以下开辟50个控件缓存
10 -100kb 缓存20张
大于100kb 缓存10张
以队列先进先出方式

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

LRU算法 (如30分钟内是否使用)
定时检查 ( low )
提高检查触发频率(每次进行读写时检查、前后台切换时)

磁盘设计需要考虑哪些问题?
存储方式
大小限制
淘汰策略

网络设计需要考虑哪些问题?
图片请求最大并发量
请求超时策略
请求优先级
图片解码采用什么方式?
应用策略模式对不同图片格式进行解码
在哪个阶段进行图片解码??
磁盘读取后
网络请求返回后
线程处理

网友评论