当前位置:首页 » 文件管理 » java三级缓存设计

java三级缓存设计

发布时间: 2023-08-17 20:56:54

‘壹’ 三级缓存的使用

关于图片的处理,必不可少要用到三级缓存技术。

什么是三级缓存?

三级缓存一般分为内存--本地--网络三级缓存

内存(手机内存):内存相对于磁盘缓存,速度会快很多,但是缺点就是容量较小,不能存储大容量数据,且容易被系统回收。LruCache

磁盘(SD卡):相对于内存来说存储空间很大,能够存储较多的数据。DiskLruCache(DiskLruCache是非Google官方编写,但获得官方认证的硬盘缓存类,该类没有限定在Android内,所以理论上 java 应用也可以使用DiskLreCache来缓存。)

网络:服务器端,通过HTTP请求获得。

具体流程就是,同一张图片从网络获取一次,然后在本地缓存下来,之后加载同一张图片的时候就从缓存中去加载。
先在内存中查找,找到就进行加载,否则去磁盘查找,找到将图片添加到内存中,加载显示,否则从网络加载,并且缓存到内存和磁盘,并返回。这就是完整的三级缓存过程。

这里需要介绍的是内存缓存一共分为四类:强引用、软引用、弱引用和虚引用(后面我会再专门整理一篇博客的~)

到这里三级缓存应该大概明白了吧,下面是我写的实现demo

Activity和布局文件都比较简单,布局中只有一个imageView,实例化上面个工具类,调用loadBitmap方法即可,这里就不贴出来了。

第一次打开时log信息:

关闭后打开log信息:

以上是三级缓存的使用。

‘贰’ 为什么CPU要分一级缓存、二级缓存和三级缓存

CPU缓存就是CPU内部的缓存运行频率,缓存的大小与结构对CPU速度的影响较大,因此缓存大小也是CPU重要的性能指标之一。

CPU缓存的作用主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,而缓存的容量要比内存要小的太多,但是其速度要比内存快的多,因此这样会让CPU使用很长的时间等待数据到来或把数据写入内存中。

搜索在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就能够避开内存直接从缓存中调用,从而加快读取速度。

当CPU需要读取数据并进行计算时,首先需要将CPU缓存中查到所需的数据,并在最短的时间下交付给CPU。

如果没有查到所需的数据,CPU就会提出“要求”经过缓存从内存中读取,再原路返回至CPU进行计算。而同时,把这个数据所在的数据也调入缓存,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

一级缓存(L1 Cache)

CPU一级缓存,就是指CPU的第一层级的高速缓存,主要当担的工作是缓存指令和缓存数据。一级缓存的容量与结构对CPU性能影响十分大,但是由于它的结构比较复杂,又考虑到成本等因素,一般来说,CPU的一级缓存较小,通常CPU的一级缓存也就能做到256KB左右的水平。

二级缓存(L2 Cache66)

CPU二级缓存,就是指CPU的第二层级的高速缓存,而二级缓存的容量会直接影响到CPU的性能,二级缓存的容量越大越好。例如intel的第八代i7-8700处理器,共有六个核心数量,而每个核心都拥有256KB的二级缓存,属于各核心独享,这样二级缓存总数就达到了1.5MB。

三级缓存(L3 Cache)

CPU三级缓存,就是指CPU的第三层级的高速缓存,其作用是进一步降低内存的延迟,同时提升海量数据量计算时的性能。和一级缓存、二级缓存不同的是,三级缓存是核心共享的,能够将容量做的很大。

CPU的核心数量、高频高低都会影响性能,但如果让CPU更聪明、更有效率的执行计算任务,那么缓存的作用就至关重要了。

(2)java三级缓存设计扩展阅读:

CPU主要性能参数:

1、主频

主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。

2、外频

外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。

3、总线频率

前端总线(FSB)是将CPU连接到北桥芯片的总线。前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。

4、倍频系数

倍频系数是指CPU主频与外频之间的相对比例关系。

5、缓存

缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。

热点内容
康佳29寸电视存储器坏怎么代换 发布:2025-02-01 22:40:44 浏览:186
访问的结果 发布:2025-02-01 22:30:12 浏览:174
cmd访问网站 发布:2025-02-01 22:02:45 浏览:440
清除svn缓存 发布:2025-02-01 22:01:04 浏览:945
安卓模拟器怎么用键盘操作 发布:2025-02-01 21:55:24 浏览:808
安卓手机屏幕为什么会变色 发布:2025-02-01 21:55:20 浏览:823
安卓存折怎么看余额 发布:2025-02-01 21:53:34 浏览:770
其他电脑怎么设置访问服务器 发布:2025-02-01 21:34:27 浏览:895
如何敲编程 发布:2025-02-01 21:26:13 浏览:24
微信加密吗 发布:2025-02-01 21:26:07 浏览:43