iphone缓存清理工具(苹果手机清理缓存是什么意思)

健康管理 2023-05-01 10:08健康生活www.xingbingw.cn

  iphone缓存清理工具(苹果手机清理缓存是什么意思),新营销网红网本栏目通过数据整理汇集了iphone缓存清理工具(苹果手机清理缓存是什么意思)相关信息,下面一起看看。

   1.前言在项目开发中,为了提高系统性能,减少IO开销,本地缓存是必不可少的。当地最常见的储藏是番石榴和咖啡因。这篇文章将向你介绍咖啡因。

  咖啡因是改善谷歌番石榴缓存设计体验的结果。与番石榴相比,在性能和命中率上更高效。你可以把它想成番石榴加。

  毫无疑问,你应该尽快将你的本地缓存从番石榴迁移到咖啡因。本文将重点比较Guava和Guava的性能,并给出本地缓存和迁移策略的最佳实践。

  二、PK Guava2.1功能

  从功能上看,番石榴已经比较齐全,满足了当地大部分缓存的需求。Caffine不仅提供了Guava现有的功能,还增加了一些扩展功能。

   2.2性能在Guava中,它的读写操作是和过期时间的处理混在一起的,也就是你可能在一个put操作中做消除操作,所以它的读写性能会受到一定的影响。

  咖啡因在读写操作上完全爆番石榴,主要是咖啡因异步操作这些事件。它将事件提交到队列(使用Disruptor RingBuffer),然后通过默认的ForkJoinPool.commonPool()或自己配置的线程池进行队列操作,然后执行后续的清除和过期操作。

  以下性能对比来自咖啡因官方提供的数据

   (1)在该基准测试中,从配置了最大大小的缓存中,8个线程并发读取

   (2)在该基准测试中,在配置了最大大小的缓存中,6个线程读取,2个线程写入

   image.png

   (3)在该基准测试中,从配置了最大大小的缓存中,8个线程并发写入

   image.png

   2.3命中率缓存的淘汰策略是预测哪些数据在短时间内最有可能被使用,从而提高缓存的命中率。番石榴用的是S-LRU切分的最近最少不用算法,咖啡因用的是结合了LRU和LFU优点的算法W-TinyLFU,特点是命中率高,内存占用低。

   2.3.1 LRULeast最近使用如果数据最近被访问过,那么将来被访问的概率也较高。这个元素在每次被访问的时候都会被放在队列的最前面,当队列满的时候队列末尾的数据会被清除,也就是最长时间没有被访问的数据会被清除。

  需要维护每个数据项的访问频率信息,每次访问都需要更新,非常昂贵。

  缺点是,如果某个时刻有大量数据到达,很容易把热数据挤出缓存,剩下的很可能是只访问一次,以后不会再访问或者访问频率极低的数据。比如中午外卖访客突然增多,微博某明星尴尬事件,都是突发的热点事件。当事件结束后,可能不会有任何访问,但由于其访问频率高,在未来很长一段时间内不会被淘汰。

   2 . 3 . 2 l最不常用如果数据最近被访问过,那么将来被访问的概率也较高。即剔除某段时间内被访问次数最少的数据(时间局部性原则)。

  需要Queue来存储访问记录,LinkedHashMap可以用来简单地实现一个基于LRU算法的缓存。

  它的优点是避免了LRU的缺点,因为按频率淘汰,不会有大量进来的挤掉老的,而且数据访问方式不随时间变化,LFU可以提供极佳的命中率。

  其缺点是偶尔和周期性的批处理操作会导致LRU命中率的急剧下降和严重的缓存污染。

   2.3.3 TinyLFUTinyLFU,顾名思义,是一种轻量级的LFU,比LFU算法使用更少的内存空间来记录访问频率。

   TinyLFU维护了最近访问记录的频率信息,不同于传统的LFU的整个生命周期的访问记录,他可以很好地处理突发的热点事件(在一定时间之后,不再维护这些记录)。这些访问记录将作为一个过滤器,只有当新添加的记录(新项目)的访问频率高于将被淘汰的缓存记录(缓存牺牲者)的访问频率时,才会被替换。流程如下

  小拱门

  虽然保留了最近的访问记录,但仍然非常昂贵。TinyLFU通过Count-Min Sketch算法记录频率信息,占用空间小,误报率低。关于最小计数草图算法,请参考论文用最小计数数据结构近似数据。

   2 . 3 . 4 W-TinyLFUW-TinyLFUW是咖啡因提出的新算法,可以解决频率统计不准确、访问频率衰减等问题。我们来平衡一下自适应证明的空间、效率和长宽带来的哈希碰撞错误率。

  下图显示了运行ERP应用程序的数据库服务中各种算法的命中率。实验数据来自ARC算法作者。更多场景性能测试见官网

  资料库

   W-TinyLFU算法是TinyLFU算法的优化,可以很好地解决一些稀疏突发访问元素。在一些数量不多但突然访问数量较多的场景中,TinyLFU将无法保存此类元素,因为它们无法在短时间内积累足够高的频率,所以可以被过滤器过滤掉。W-TinyLFU将创造新的记录

  暂时放入 Window Cache 里面,只有通过 TinLFU 考察才能进入 Main Cache。大致流程如下图

  W-TinyLFU

  三、最佳实践3.1 实践1

  配置方式设置 maxSize、refreshAfterWrite,不设置 expireAfterWrite

  存在问题get 缓存间隔超过 refreshAfterWrite 后,触发缓存异步刷新,此时会获取缓存中的旧值

  适用场景缓存数据量大,限制缓存占用的内存容量缓存值会变,需要刷新缓存可以接受任何时间缓存中存在旧数据

  设置 maxSize、refreshAfterWrite,不设置 expireAfterWrite

  3.2 实践2

  配置方式设置 maxSize、expireAfterWrite,不设置 refreshAfterWrite

  存在问题get 缓存间隔超过 expireAfterWrite 后,针对该 key,获取到锁的线程会同步执行 load,其他未获得锁的线程会阻塞等待,获取锁线程执行延时过长会导致其他线程阻塞时间过长

  适用场景缓存数据量大,限制缓存占用的内存容量缓存值会变,需要刷新缓存不可以接受缓存中存在旧数据同步加载数据延迟小(使用 redis 等)

  设置 maxSize、expireAfterWrite,不设置refreshAfterWrite

  3.3 实践3

  配置方式设置 maxSize,不设置 refreshAfterWrite、expireAfterWrite,定时任务异步刷新数据

  存在问题需要手动定时任务异步刷新缓存

  适用场景缓存数据量大,限制缓存占用的内存容量缓存值会变,需要刷新缓存不可以接受缓存中存在旧数据同步加载数据延迟可能会很大

  g

  设置 maxSize,不设置 refreshAfterWrite、expireAfterWrite,定时任务异步刷新数据

  3.4 实践4

  配置方式设置 maxSize、refreshAfterWrite、expireAfterWrite,refreshAfterWrite expireAfterWrite

  存在问题get 缓存间隔在 refreshAfterWrite 和 expireAfterWrite 之间,触发缓存异步刷新,此时会获取缓存中的旧值get 缓存间隔大于 expireAfterWrite,针对该 key,获取到锁的线程会同步执行 load,其他未获得锁的线程会阻塞等待,获取锁线程执行延时过长会导致其他线程阻塞时间过长

  适用场景缓存数据量大,限制缓存占用的内存容量缓存值会变,需要刷新缓存可以接受有限时间缓存中存在旧数据同步加载数据延迟小(使用 redis 等)

  设置 maxSize、refreshAfterWrite、expireAfterWrite

  四、迁移指南

  4.1 切换至 Caffeine

  在 pom 文件中引入 Caffeine 依赖

   dependency groupId com.github.ben-manes.caffeine /groupId artifactId caffeine /artifactId /dependency

  Caffeine 兼容 Guava API,从 Guava 切换到 Caffeine,仅需要把 CacheBuilder.newBuilder()改成 Caffeine.newBuilder() 即可。

  4.2 Get Exception

  需要注意的是,在使用 Guava 的 get() 时,当缓存的 load() 返回 null 时,会抛出 ExecutionException。切换到 Caffeine 后,get() 不会抛出异常,但允许返回为 null。

  Guava 还提供了一个getUnchecked() ,它不需要我们显示的去捕捉异常,一旦 load() 返回 null时,就会抛出 UncheckedExecutionException。切换到 Caffeine 后,不再提供 getUnchecked() ,需要做好判空处理。

   相关文章

  什么时候万圣节(万圣节是什么时候?)

  剪切的快捷键是什么(电脑常用的快捷键汇总)

  嫦娥奔月文言文(《嫦娥奔月》原文与译文)

  小投资加盟(一万元就能做的投资小项目)

  弥留之际的意思(弥留之际(解析))

  鲅鱼水饺的做法(这样调制的鲅鱼馅,鲜香不腥!)

  蚂蚱几条腿(四条腿的蚂蚱)

  环保项目有哪些(30万元适合投资的五个绿色环保项目)

  麦芽糖是什么(烘焙原料小贴士——“麦芽糖”)

  一汤匙(一汤匙、一茶匙是多少吗?)

  清蒸鲽鱼的做法(清蒸鲽鱼的家常做法)

  宋太祖怕史官(宋太祖居然会怕一个小小史官?)

  更多iphone缓存清理工具(苹果手机清理缓存是什么意思)相关信息请关注本文章,本文仅仅做为展示!

Copyright@2015-2025 www.xingbingw.cn 性病网版板所有