00:00
嗯,我们接下来讲继续啊,新的内容了。讲什么呢?接下来就讲我们的这里面内容好,那么接下来我们就讲图片的三级缓存,图片三级缓存。那么其实很多一些第三方请求图片的框架,他已经做了三级缓存,已经做了三缓存,但是我们为什么还讲3D缓存的是这样子的,你在面试啊,用得着啊,面存用得着,因为面试过他问你,诶你怎么避免内存溢出啊,其实内存溢出你觉得文本有可能导致内存溢出吗?没有没有,都基本上都是图片是吧?那这个时候你要说啊,怎么去解决内存溢出的时候,你其实就可以往3D缓存里面。意思吧,好,那么三级缓存的原理是什么呢?好给大家,所以说三级缓存呢,它其实要它其实这是这么一个流程,首先我们去加载一张图片的时候。
01:02
加载这张图片的时候,我们优先去内存去加载。去内存去找,诶有没有这张图片,有的话直接在内存中把这张图片拽过来就显示吧。好,为什么这样子呢?因为在内存中直接去显示比较快,那么顺便给大家讲一些知识,同学们,大家很多同学应该是学过电脑计算机的啊,或者说虽然没有,可能不是科班出身,但是对还是有点了解。我们的所有的软件,不管是电脑还是手机,这个软件之所以能够打开运行,它其实都是从硬盘中加载到内存中吧,那在内存中才最终把这些图片,把这些东西给运作起来吧,那么也就是说平时我们所讲的电脑的。内存条,这个内存条空间越大,那也就是说你打开的软件就可以越多。这样的话也。不卡是不是啊。当然。
02:00
电脑如果你这个内存条很大,16个G,但是你CPU比较慢,然后你固态硬盘比较慢,是有可能你的性脑是电脑,电脑的性能也弱。因为因为是这样子的,你内存虽然大,你就说你打开进来的时候装载很大,但是你电脑快慢,其实还有两个因素,一是CPU你要处理塑料快,还有一个就说你CPU很快,你内存也很快,但是你磁盘慢,你打开是不是也慢了,为什么呢?因为比如说安丢这种工具,它可能一打开要有两个G,你两个G如果没有瞬间把它读完。自然而然是不是就慢了,假如说你CPU很快,你的这个内存条很大,但你打开光是读显速度读到内存中,因为从硬盘读到内存中,如果就花十个小时啊,十个小时肯定不可能的,那花了几分钟,那自自然就觉得很慢了吧,但是如果你的你的这个磁盘。
03:04
是固态硬盘,固态硬盘,固态硬盘是读写速度很快呀,一秒钟一秒钟好像是以500多兆,那500多兆的话,对于两个G。几秒啊,好几秒好几秒就搞定了,那这样是不是感觉很快呀,所以为什么同学们会要你们啊装固态啊硬盘啊一个啊这个这个这个内存条啊,只要你们装这两个吧,因为CPU一般来说是够用的,知道吧,啊CPU一般是够用的,就说CPU其实处理速度还是蛮快的了。啊,所以一般电脑这几个指标是最重要,当然还有其他东西啊,显卡什么的,但最主要最主要啊,电脑性能由这几个因素所决定的啊好,那么也就是说我们去加载一张图片也是一样的道理,搜有些启动内存。去加载这种图片,因为我们所有的啊运行还有是一些件加,呃,行起来都在内存,因为内存是最快对吧,其次如果内存没有。
04:09
我们呢,到其自己本地去取,这本地去取是啥意思呢?就是你这张图片已经保存到本地了,SD卡中了,我们来去取好,那如果SD卡也没有,那怎么办?网,那就从网络对吧,就是这么一个过程,你看从内上取图片,那从本地取图片,从图片是要显示在我们的这个控件上啊,那如果取了,我们顺便在内存中保存一份,下次再取的话,是不是就可以从内存中取了。对吧,好,所以从本地取的时候,我们现在内存能保一份,好那同学们。如果,如果。网如果内如果本地取不到图片,我们在哪里取啊?我们会请求网络,然后把这图片获取过后呢,显示在空间上,这时候我们就用到hand的了,因为你请求图片,你是在子线程还是主线程呢。
05:04
直线,但是显示在UI上,我们能在直线直接显示吗?不能,所以会用hand的发过去啊,到时候并且还发一个位置。因为因为我历史预中这么多请求,我是要去做一个标识,然后再显示到对应的空间上啊,到时候还现制一个T啊什么的啊,大家可以先了解一下,然后同时我会在内存中和本地中各保存一份,下次再往上滑的时候,比如说现在我去联网请求。好,带到这个图片了,假如啊,我们可以看一下网,那么得到了过后,假如说我们这方得到了过后,那么再往上拉的时候。这个图片应该是从哪里取的?从内存中获取,那内存中没有就应成什么本地,本地没有才再去什么,再去联网,把这张图片请求下来知道吧,但是如果有了就从内存中,这样的话呢,速度快了,大家想一想,那么如果我们往下拉,往下拉很多图片从网络获取了,接下来再往上拉,将图片已经加载过,我们有必要还用重加载吗?
06:10
那么没必要了,就只要从内存和本地加载就可以了,这样就有一个好处,就是就就是什么它就省流量。而且速度快,而且提高程序的执行效率。而且可以避免内存溢出,道吧,好,排出就有几大好处知道吧。好,那同学们,这就是我们三级缓存的原理啊。
我来说两句