当前位置:首页 » 文件管理 » 缓存类

缓存类

发布时间: 2023-01-13 19:16:43

A. 三级缓存的使用

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

什么是三级缓存?

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

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

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

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

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

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

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

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

第一次打开时log信息:

关闭后打开log信息:

以上是三级缓存的使用。

B. Spring boot + Mybatis plus + Redis实现二级缓存

 1.1   通过application.yml配置redis的连接信息,springboot默认redis用的lecttuce客户端,如果想用jedis的话,只需要在pom.xml中引入redis的时候排除在lecttuce,然后再导入jedis的jar包就好了,

1.2 打开mybatis plus的二级缓存,为true的时候是开启的,false是关闭二级缓存

1.3 编写缓存类继承Cache类,实现Cache中的方法

1.4 早*.xml中加上<cache>标签,type写你所编写二级缓存类的路径

C. 手机内存不足,清理这几个文件让你手机再战几年

很多朋友的手机使用几年后,都会提示内存不足,这时候很多人会选择恢复出厂设置,达到清理内存的效果。但是进行恢复出厂设置,会导致我们手机中的所有资料被清空,有一些小伙伴还是不愿意这样做的,那么我们怎么才能更好的清理手机存储呢?合理的清理存储的方法,能够让手机再战几年。

首先我们要搞清楚是什么在占用我们的手机内存。


第一个:照片视频类


这一类就不进行详细的介绍了,来源于我们日常的拍摄,拍摄的时常越长,文件就越大所占用的空间就越大。


第二个:手机应用类


这一类就是我们日常所使用的手机应用,这些应用我们下载的越多,占用的空间肯定是越大。


第三个:应用生成类


这一类是由手机应用生成而出的,像我们使用手机应用看电视时,都会生成缓存文件,这些缓存文件大部分来源都是微信。


第四个:系统以及系统缓存类


这一类是我们手机自带的系统,以及我们在使用手机时,系统自动产生的缓存文件,这些文件会随着时间越积越多。

以上四点就是占用我们手机内存的主要来源。

除了进行恢复出厂设置,我们通过文件管理也能够进行有效的空间的清理,我们只需要在文件管理中找到以下文件就可以了。

1. Backup


文件夹主要存放的是手机备份文件,如果你没有进行过手机备份,那么此文件夹应该时空的,当然我们也可以进行删除,只不过系统会自动生成。


2. Download


这个文件夹内存放的是我们平时手机下载软件的安装包存放的位置,如果你是浏览器或者别的途径获取的,并没有开启自动清理功能,那么这个文件夹所占的空间肯定非常大,我们可以进行手动删除。


3. Android


看到文件名是不是以为该文件内装的是手机系统,其实差不多,只不过该文件夹内装的是系统缓存数据。删除以后,你的某些账号会重新登录。


4. DCIM


该文件夹就是用来存储我们日常拍摄的照片视频的文件夹,所以如果你的照片或者视频所占比例很大,你就可以在此文件夹内选择性清除了。


5. Cache


这个文件夹内存储的是我们的日常缓存数据,如果你觉得没有重要的东西,可全删。


合理的清除以上的五个文件夹,都能够给我们的手机带来更多的手机存储让自己的手机再战几年。

D. 西数sn720缓存

西数sn720缓存类型为:DRAMLPDDR3。西部数据SN720固态硬盘1T这个固态硬盘SSD总体来说有好有坏吧。西部数据SN720固态硬盘1T的参数:存储温度为-40-85℃。缓存类型为DRAMLPDDR3。IOPS写入为400000IOPS。接口类型为M.22280。容量为1TB。工作温度为0-70℃。闪存类型为3DNANDTLC。NVMe为支持。总的来说西部数据SN720固态硬盘1T在配置参数、超频潜力、可拓展性等方面也还是不错的。相信很多玩家或者自主装机爱好者都抵抗不了炫酷设备的诱惑,所以这款西部数据SN720固态硬盘1T必将是你的睿智之选。品牌保证严苛品质能够更好的带动和提升电脑的运行性能,严苛工艺打造高强度工作下的持久稳定性。

E. 什么是高速缓存,作用是什么

什么是高速缓存技术:
高速缓存英文是cache。一种特殊的存储器子系统,其中复制了频繁使用的数据,以利于CPU快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。

高速缓存的作用:
在CPU开始执行任何指令之前,都会首先从内存中取得该条指令以及其它一些相关数据和信息。为了加快CPU的运行速度,几乎所有的芯片都采用两种不同类型的内部存储器,即高速缓存。缓存被用来临时存放一些经常被使用的程序片段或数据。
一级高速缓存是性能最好缓存类型,与解释指令和执行算术运算的处理单元一到构成CPU的核心。CPU可以在全速运行的状态下读取存放在一级高速缓存中的指令或数据。Intel的处理器产品一般都会具有32K的一级缓存,而象AMD或Via这种竞争对手的产品则会使用更多的一级缓存。
如果在一级缓存中没有找到所需要的指令或数据,处理器会查看容量更大的二级缓存。二级缓存既可以被集成到CPU芯片内部,也可以作为外部缓存。Pentium II处理器具有512K的二级缓存,工作速度相当于CPU速度的一半。Celeron以及更新的Pentium III芯片则分别具有128K和256K的在片二级缓存,能够在处理器全速下运行。
对于存放在速度较慢的二级缓存中的指令或数据,处理器往往需要等待2到4个时钟周期。为了充分利用计算资源,CPU可以在这段时间内查看和执行其它正在等候处理,但不需要使用额外数据的指令,从而提高整个系统的速度,把空闲时间降低到最低程度。

F. 如何Vivo手机屏蔽程序缓存类文件(/手机储存/Android/data/)

叫做缩略图,这玩意自安卓7还是8那会更新后修改了相关机制,我就没再见过了,在此之前我沉迷魅族flyme,记得很清楚是在图库软件里隐藏缩略图,或者隐藏相册,这样在第三方如QQ微信发送图片时就不用疯狂寻找,你看看有没有。
如果vivo与魅族不同,只能忍着,缩略图是必须加载的,可以清除,但后续还会自动下载在手机里,顶多就是发图片时从相册里分享
试着百毒了下,大概是主流机器搭载的安卓版本已经没有这个问题了,我反正是没找着。

G. win8系统为什么会产生那么多的垃圾

系统垃圾,就是系统不再需要的文件的统称,它可以分为下面几类:

1.缓存类

1.1 windows系统缓存

系统缓存是一个很泛泛的概念,它包含许多路径,用来保证操作系统和一些应用程序的正常使用,最常见的非TEMP莫属,绝大多数系统组件的运行依赖此目录。

1.2 应用程序数据缓存

应用程序目录主要是%TEMP%目录,这里主要存放一些应用程序的缓存,比如:遨游、谷歌浏览器,火狐浏览器等程序的Cache都在这里。

1.3 IE缓存

之所以把IE单独拿出来是因为它比较特殊,IE对应的一些缓存有自己独立的位置,比如网页临时文件在Temporary Internet Files文件夹中,历史在Recent文件夹中,而cookie等也有专门的文件夹

2.注册表类

注册表是windows管理机制中的核心部分,随着系统使用时间的增长,注册表的冗余在所难免。再加上一些不负责任的程序员开发的程序在安装时写入的键值不能卸载干净,也增加了数据的冗余。因而,清理注册表的主要原理就是删除冗余键值对。

3.系统遗留文件类

这一类文件(文件夹)的特点,就是占用空间极大,而这一类文件也是目前的软件不敢跨越的雷池,因为任何一个地方清理不当,可能会导致系统崩盘或者出现异常。同理,Windows更新的反安装文件也存在于C盘,清理之后可以节省客观的空间,但同样会带来潜在的危害(比如,某些还原点无法回滚)。

上面这些系统垃圾都是伴随系统的运行而产生的,并且还不能避免,你要使用电脑,就不可避免的要上网,或者玩游戏,或者使用其他的程序,这些操作都会产生相应的无用文件,导致系统垃圾的产生,不仅win8,就是win7或者是XP系统,都一样。

系统垃圾过多,会浪费硬盘空间,也会拖慢系统的运行速度,你可以用软件来清理一下,推荐你用CCleaner,软件安装后,打开软件,点击清洁器,就可以扫描系统的垃圾文件,分析完成后,运行清洁器,就可以清除。

H. 什么是高速缓存作用是

什么是高速缓存技术:
高速缓存英文是cache。一种特殊的存储器子系统,其中复制了频繁使用的数据,以利于cpu快速访问。存储器的高速缓冲存储器存储了频繁访问的
ram
位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主ram
存储器速度快,所以当
ram
的访问速度低于微处理器的速度时,常使用高速缓冲存储器。
高速缓存的作用:
在cpu开始执行任何指令之前,都会首先从内存中取得该条指令以及其它一些相关数据和信息。为了加快cpu的运行速度,几乎所有的芯片都采用两种不同类型的内部存储器,即高速缓存。缓存被用来临时存放一些经常被使用的程序片段或数据。
一级高速缓存是性能最好缓存类型,与解释指令和执行算术运算的处理单元一到构成cpu的核心。cpu可以在全速运行的状态下读取存放在一级高速缓存中的指令或数据。intel的处理器产品一般都会具有32k的一级缓存,而象amd或via这种竞争对手的产品则会使用更多的一级缓存。
如果在一级缓存中没有找到所需要的指令或数据,处理器会查看容量更大的二级缓存。二级缓存既可以被集成到cpu芯片内部,也可以作为外部缓存。pentium
ii处理器具有512k的二级缓存,工作速度相当于cpu速度的一半。celeron以及更新的pentium
iii芯片则分别具有128k和256k的在片二级缓存,能够在处理器全速下运行。
对于存放在速度较慢的二级缓存中的指令或数据,处理器往往需要等待2到4个时钟周期。为了充分利用计算资源,cpu可以在这段时间内查看和执行其它正在等候处理,但不需要使用额外数据的指令,从而提高整个系统的速度,把空闲时间降低到最低程度。

I. NSCache详解

Tips:NSCache是Foundation框架提供的缓存类的实现,使用方式类似于可变字典。由于NSMutableDictionary的存在,很多人在实现缓存时都会使用可变字典,但是NSCache在实现缓存功能时比可变字典更方便,最重要的它是线程安全的,而NSmutableDictionary不是线程安全的,在多线程环境下使用NSCache是更好的选择。

下面是官方文档的翻译:

NSCache
一个可变集合,用于临时存储在资源不足时容易被收回的临时键值对数据。

特点:

通常使用NSCache对象来临时存储具有临时数据的对象,这些临时数据的创建成本很高。重用这些对象可以提供性能优势,因为它们的值不必重新计算。但是,这些对象对于应用程序来说并不重要,如果内存紧张,可以丢弃它们,如果被丢弃,则必须在需要时重新计算它们的值。

如果一个对象可以在不使用时丢弃,可以采用实现NSDiscardableContent协议来改进缓存回收行为。默认情况下,如果缓冲中的NSDiscardableContent对象的内容被丢弃,那么它们被自动删除,不过这个自动删除策略可以更改。如果将NSDiscardableContent对象放入缓存,则缓存在删除该对象时,调用discardContentlfPossible方法。

NSCache提供的属性和相关方法:

举个例子:

运行输出结果:

我们可以看到当我们_cache.countLimit 设置为5的时候,添加第6-10个的时候,前面5个就会被移除了。

之后我们在把应用退出到后台,会发现,后面5个也会被移除了:

上文中,我们提到( 如果一个对象可以在不使用时丢弃,可以采用实现NSDiscardableContent协议来改进缓存回收行为。)并且NSCache中也有一个属性是 ,那么我们可以稍微了解一下关于 NSDiscardableContent 这个协议的描述:

当一个有内容的类的对象可以在内容不使用时丢弃,可以实现此协议,从而使应用程序占用更小的内存,这样可以提高缓存的淘汰。

默认情况下,内存不足时,当前系统会把内存中的一部分缓存,置换到磁盘上,所以我们使用NSDiscardableContent这个协议,把数据标记成可清除的,而不用被置换的,当没有内容的时候,直接被清除就行了。

实现NSDiscardableContent的对象的生命周期依赖于一个"counter"变量。
实现NSDiscardableContent的对象是一个可清除的内存块,它会跟踪当前对象是否被其它对象使用。

当counter等于0时,如果内存在那个时间点吃紧,就可以丢弃当前对象。为了丢弃内容,在对象上调用discardContentIfPossible,如果counter等于0,那么它将释放关联的内存。

Foundation框架包括了一个NSPurgeableData类,该类默认实现了这个协议。

下面我们看一下这个协议中的方法:

上面就是对于NSDiscardableContent 协议的介绍,Foundation框架中提供了一个默认实现该协议的类:
NSPurgeableData

可以单独使用这个对象,并不一定和NSCache结合使用。

比如我们生成了NSPurgeableData这样的一个实例,并且存入到了NSCache中,然后调用endContentAccess方法,将counter设置为0,当收到内存警告的时候,NSPurgeableData的实例对象,就会被清除了。

我们使用GNUStep来看下NSCache的实现:

我们直接到setObject:forKey:方法的实现:

我们看到对象在缓存时是用的_GSCachedObject:

num也就是当前对象所占用的内存的消耗,默认是0,下面这个方法里面,就是缓存的淘汰,我们可以看下这个方法是如何依赖num来实现具体的缓存策略:

LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

J. 缓存是什么意思

缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM。通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

一、缓存的概念

缓存是硬盘控制器上的一块内存芯片,具有极快的存取速率,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速率和外界接口传输速率不同,缓存在其中起到一个缓冲的作用。千万不能把缓存理解成一个东西,它是一种处理方式的统称。

二、缓存种类

CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。

L3 Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。

SuperCache,也就是超级缓存,计算机的速度瓶颈主要在于机械硬盘的读写速度,SuperCache就是给硬盘的读写用高速内存来做缓存,是大内存机器的提速首选,服务器的必备利器。

热点内容
路人甲脚本 发布:2025-09-01 05:21:38 浏览:580
什么是域配置文件 发布:2025-09-01 05:16:05 浏览:540
什么是三网通安卓系统 发布:2025-09-01 05:07:35 浏览:206
封神战脚本 发布:2025-09-01 04:47:59 浏览:913
socketlinux 发布:2025-09-01 04:40:08 浏览:512
如何把u盘文件夹加密 发布:2025-09-01 04:38:49 浏览:363
2005sqlserver 发布:2025-09-01 04:38:48 浏览:140
androidjson读取 发布:2025-09-01 04:14:30 浏览:661
sql字节 发布:2025-09-01 04:05:13 浏览:919
阿里云服务器并发量 发布:2025-09-01 04:02:53 浏览:276