关系经济人类预测化学自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

产品经理学技术朋友圈中的图片缓存系统

7月27日 圆通道投稿
  缓存是什么?
  缓是临时的意思,存是存储的意思,所以缓存就是临时存储的意思。什么东西适合临时存储呢?文字、网页、图片、数据?一切都适合临时存储,并且也都适合永久存储,要看业务类型。
  以朋友圈为例,你一定离不开这几种场景:
  刷了几页之后,然后回到头部,你会发现看过的图片依旧在显示,并没有重新出现占位符;然后再显示出图片,表明这张图片一直在内存中,随时可被使用。
  点击一条新内容的图片时,会展示一张小的缩略图,然后loading一直在转,过了一会儿一张清晰无码大图展现出来,表明这张图片是从网络拉取回来的,随后再被使用。loading的过程中,只存在一张小的缩略图。
  当你翻到几天前的内容,打开图片的时候,有的时候跟2一样,从网络拉取,有的时候,瞬间打开,这是为啥呢?因为有可能还在缓存系统中,瞬间被使用。也有可能被淘汰删除掉了,所以从网络重新拉取。
  这几种情况基本涵盖了一个App或者其他应用程序所使用缓存系统的所有场景,只不过这个举例以图片为主,其他原理类似。
  缓存系统经常分为两级:称为一级缓存,二级缓存。一级缓存也叫内存缓存,二级缓存也叫硬盘缓存(手机App中,在Sd卡上)。很显然,一级缓存存取速度更快,程序退出数据就消失,不可一直保留,且多占了一些内存,容易被人叨逼叨的说程序占内存大,把系统拖慢了,其实这是非常合理的一种以空间换取时间的程序设计。二级缓存容量可以更大,速度要慢一些,程序下次启动时候,依然可以使用。
  所以缓存系统设计就是分配两块存储空间,一块在内存,一块在硬盘,假设内存分配5Mb,硬盘分配100Mb,前者叫一级缓存,后者叫二级缓存(硬盘相对比较便宜,所以一般分配要大些)。
  现在来模拟下整个朋友圈的流程。
  进入朋友圈开刷,这些图片就不断的占用5Mb的内存空间,这时你往回滑动,你会发现刚才的图片还都在,因为这个时候一级缓存还没满,还可以继续吃,所有的图片也都能正常满足业务需求。
  假设这个时候已经滚动到了第三屏,一级缓存5Mb空间已被占满,达到上限,所以必然要进行淘汰,目前业界一般会采用LRU(LeastRecentlyUsed)算法进行淘汰,也就是最近最少被使用的图片被淘汰(想想还是很贴心的,最近最少被使用,对一个功利的程序来说,你是最佳人选,如果你在工作中最近最少被使用,要注意安全了哦,哈哈)。所以按照朋友圈时间线的性质,第一张图片被淘汰出了一级缓存,它会被安放到二级缓存,也即存储到了硬盘上,注意虽然叫淘汰,但也没有那么惨,没有被完全丢弃打入冷宫,也算有了个不错的归宿,假设这个时候滑动回第一张图片所在的位置,这个时候内存没有这张图片,一级缓存中没有,一级缓存作为一个老好人,会问二级缓存,第一张图片在你哪里吗?这个时候回答是肯定的,所以一级缓存又按照刚才的算法,淘汰一些其他最近最少被使用的图片出去,保证第一张图片能够在内存中,然后我们有又看到了第一张图片。
  继续刷下去,我们会发现一级缓存5Mb满了,一直在进行换出换入操作,也就是淘汰一些,选进来一些。硬盘100Mb的空间也有可能被撑满,所以二级缓存也会进行淘汰工作,因为它是最下面的一层,所以只被动的接收一级缓存塞入图片,以及自身的淘汰。
  扩展到一个新闻客户端乃至任何一个应用程序,整个流程都可按朋友圈自行脑补,原理都是一样的,只不过对参数的配置略有不同,比如有的想提供更好的看图体验,一级缓存设计的比较大,能够同时浏览更多的图片,不用经常的换入换出,但是同时也耗用更多内存,程序的稳定性也带来挑战。二级缓存占用也可以设计的比较大,这样一些被经常使用的场景的图片,就可以不用再从网络上拉取,但是占用大了,一些管家、卫士就要出现了,说某程序占用了多少多少空间,是否要现在清理,除非你是像微信这种全国人民不得不用的App,他们会相应的提高阈值,清理也会更慎重。在计算机程序中,时刻充满博弈,你想占用更多的资源,就面临更多的风险,用户体验和程序性能之间永远要做衡量,虽然有矛盾,但一定有一个最适合你自己所做业务的方案,虽然有可能也是要经过取舍的。
  再举个例子,微信的第二个tab是通讯录,当列表快速滑动的时候,滑动过程中,很多头像都是默认的灰头像,为什么是默认头像呢,因为滑动的时候再去读相应的头像,并且对图片解码,会使整个列表的滑动掉帧卡顿。一些新闻客户端的做法又恰恰不同,比如滑动的过程中,图片就一张接着一张出来,明显感觉是有些卡顿的,但是慢慢滑动是不会的。所以对于关键路径的理解是选择技术方案的最重要的要素。
  我来谈谈自己的理解,为什么列表有可能会卡顿,但是大家选择了不同的做法?微信通讯录的主场景是查找,按字母排序,很可能是快速的滑动,所以卡顿体验相当不好,所以舍弃了一点点的滑动过程中的效果。一个新闻客户端的主场景是浏览新闻,应该是慢慢滑动,这个时候快速滑动的卡顿感会被削弱,也即大多数用户是不会用力滑动的,而大多数慢慢搓动刷新闻。所以对于关键路径的理解不同,所产生的技术方案也不相同。
  《芈月传》中,大王娶了很多老婆,这些老婆在被开苞之后,全部被扔到了一级缓存中,随时等待大王临幸,但因为大王年龄越来越大,体力越来越差,并且伴随着芈月和大王越来越match,芈姝,魏琰随即被淘汰到了二级缓存中,这些心机较重的女人,如果能适时收手,也许还会被重新换入到一级缓存中,和大王有更多的机会见面,但多行不义必自毙,终会被从二级缓存中彻底删除。
投诉 评论 转载

梨种植的疏果管理梨树开花结果情况良好,挂果过多,如果前期不注意疏果,则容易造成后期梨果果实偏小、品质偏差的现象。梨种植的疏果管理介绍如下:梨种植的疏果在谢花后1015天开始进行,一般按每……倔强的牛头永不停驶的陆地巡洋舰丰田LandCruiser诞生年份:1951年咱国内肯定很多人都听过那句广告车到山前必有路,有路必有丰田车吧?没错,这句广告语说的就是丰田兰德酷路泽LandCrui……产品经理学技术朋友圈中的图片缓存系统缓存是什么?缓是临时的意思,存是存储的意思,所以缓存就是临时存储的意思。什么东西适合临时存储呢?文字、网页、图片、数据?一切都适合临时存储,并且也都适合永久存储,要看业务……二手房交易要交哪些税费工作人员只交这在国人的观念里,有房才有家,所以,我国房子自有率相比其他发达国家都要高出不少,当然,随着房价不断上涨,年轻人的购房压力也越来越大。而且在买二手房的过程中,将会面临许多费用,其中……芙蓉菊与家居风格的搭配芙蓉菊在家居中的作用芙蓉菊原产于我国南方,民间栽培历史较为悠久且普遍,酒令中就有三字同头芙蓉菊,三字同边杨柳槐,要观杨柳槐,先赏芙蓉菊之句。芙蓉菊可作为盆栽、制作成盆景及在园林上应用,人们还常把它……碳中和垃圾分类站是什么意思全国首个碳中和垃圾分类垃圾分类已成为人们生活中必要的一件事情了,近日,全国首个碳中和垃圾分类站落地程度,吸引了不少居民的注意,从目前效果反馈来说还不错,碳中和垃圾分类站是什么意思?下面小编就来说说。……没控制住对孩子发了脾气怎么办现代社会中,特别是上班族妈妈要兼顾工作与家务两项职责,因此时常会忙得焦头烂额。人若是长时间负担超出自己体力和能力范围的事务,难免会引发烦躁情绪。尤其是看到孩子做错事或者淘气时,……怎样才能当好企业的中层管理者怎样才能留住中层人才中层管理人员进行有效管理,关键就在于:正确的做事。那么,如何把事情做正确呢?我们可以简单地说,这依赖于中层管理人员责任的改变;技能和素质的改变;时间运用方式的改变;价值观的改变……电脑如何刻录光盘制作光盘刻录盘工具材料aclasstaghrefwiki10301dhTkBnkwCkQnUSh。html光盘刻录a大师操作方法01:hr在搜狗搜索引擎中输入关键词光盘刻录……年教师资格证考试报考条件2017年教师资格证的报名时间九月开始,在报名考试之前你了解清楚了教师资格的报考条件么?如果没有,希望以下内容能帮你判断自己是否符合。基本要求01:hr流程:笔试报……青苹果植物怎么养操作方法01:hr养殖青苹果植物,我们首先要给他选择合适的土壤。清明果植物适合生长在酸碱度中性或者偏酸性的土壤中。02:hr青苹果植物适合生长在阴凉处,所以我们最好……小龙虾能不能吃小aclasstaghrefwiki10806I4qPSKD3。html龙虾a可以吃,小龙虾的营养价值已得到大众的认可,小龙虾已经成为了一种世界性的可食用虾类。小龙虾是一……
老年人晨练怎样预防韧带拉伤橱柜质量问题有哪些正确调节车辆后视镜的技巧什么东西可以去除沼气校车有优先通行权吗老人血液病怎么办如何抢救失血性休克中暑急救流程新生儿黄疸该怎么治疗才好快速剥鹌鹑蛋的方法这么剥鹌鹑蛋又快又完整开心笑话坑爹的铁哥们思想政治工作需要投入
语文教学工作总结上海工伤十级赔偿标准2020是怎么样的野钓钓鱼用什么打窝,提前多久打窝犯了受贿罪会判多长时间整容【商会信息】别墅空调,就选蒂森。我会建筑装饰专委会举行六恒空 SA2021年Q3全球蜂窝基带市场收益达81。5亿美元,高通依韵和王原叔内翰禁直有怀岁月神偷啊吉尔伯特阿里纳斯在科比头上砍60分,转身绝杀成就NBA经典!债务人写借条六十万怎么写?热文聚热点网 爱美的妈妈

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州