小编每天都要刷几遍朋友圈,获取最新资讯的同时,也顺便看看周围同事都在哪些国家玩耍,哪些同事又后半夜下班打不到车,最近周围同事的孩子都成长得怎么样。人生百态,每天在朋友圈里悉数上演。
本文小编主要分析朋友圈的图片缓存系统,并介绍一个缓存系统的设计要素。缓存的概念是什么呢?缓是“临时”的意思,存是“存储”的意思,所以缓存的概念就是“临时存储”。了解了缓存的概念,再一起回顾使用朋友圈的过程中的一些现象:
(1)刷了几页之后回到顶部,会发现看过的图片依旧在显示,并没有出现先显示占位符,再显示图片内容的情况,这表明图片一直在内存中,随时可被直接展示。
(2)点击一条新内容的图片时,会展示一张缩略图,然后出现loading图标旋转的动画,过一会儿一张清晰大图展现出来,表明这张图片是刚刚从网络拉取的。
(3)当用户翻到几天前的内容时,再次点击图片,有时还需要从网络拉取,有时却瞬间打开,这是为什么呢?因为有可能高清图片已经被缓存系统删除,所以需要从网络重新拉取,也有可能高清图片还在缓存系统中,可以被快速加载,从而“瞬间打开”。
这几种情况基本涵盖了一个 APP 所使用缓存系统的所有场景,只不过这个举例以图片为主,其他资源的缓存系统原理类似。缓存系统通常分两级,称为一级缓存和二级缓存。一级缓存也叫内存缓存,二级缓存也叫磁盘缓存(在硬盘或者SD卡上的缓存)。
由此可见缓存技术特点如下:
一级缓存:存取速度最快,会多占一些内存,这是非常合理的一种以空间换取时间的程序设计,数据随着程序退出而消失
二级缓存:容量更大,存取速度要慢一些,程序下次启动时,依然可以使用缓存内容。
领取专属 10元无门槛券
私享最新 技术干货