美文网首页
记一次YYCache引起的存储异常

记一次YYCache引起的存储异常

作者: 大写的空气 | 来源:发表于2021-04-21 11:00 被阅读0次
异常现场

项目中本地缓存原主要使用的事NSUserDefault, 后在工程中发现有YYCache的存在,于是,主要存储变成UserDefault与YYCache争霸战场。
困难,在引用YYCache后,慢慢发生了。项目上线后,渐渐的部门老大兼产品经理说App一些引导页总是在操作后,过一阵子又弹窗需要再次操作(正常操作一次后,不卸载不再主动弹框, 为何强调产品经理,某些需求不合理后,怪技术、怪测试)。

原YYCache封装

异常只出现在部门老大身上,天天来问这个怎么处理(手上已经有3个项目堆积在一起了,还来找麻烦)。于是在代码中增加了相关测试日志,跟踪下用户操作结果。
根据日志结果分析,App在业务上确实异常执行弹框操作,单在代码逻辑上却是正常的,重新操作后,本地存储标志也正常写入。
可以肯定,代码中未主动调用YYCache的所有缓存清理操作,YYCache本身也不会主动去清理缓存。
就这样、又过去了几天。。。
下班后,再次被老大拿去分析为何会这样,纠着代码去指挥一通,意思无非就是,以前没有这个问题,你重新封装了YYCache后就出现了这个问题。
对比以前使用的YYCache封装,跟新封装没有本质区别(为何重新封装,不在这次讨论范围)。仔细排查后,发现使用UserDefault不会出现这个问题。所有的删除的元凶慢慢指向了系统


Cache NSUserDefaults

通过文档说明,苹果设备在内存过低时,会主动清理Cache路径下所有缓存。
询问后,他的设备也确实没多少内存,满足被清理条件。当通过UserDefault方式存储时,不会因为内存过低而主动去删除本地缓存。


YYCache内部默认存储路径

默认存储路径正好位于Cache路径下,在手机内存过低后,被系统主动清理


修改后

相关文章

  • 记一次YYCache引起的存储异常

    异常现场 项目中本地缓存原主要使用的事NSUserDefault, 后在工程中发现有YYCache的存在,于是,主...

  • 2021-06-25

    简介 YYCache在多线程访问下的异常 YYCache与数据库 1.YYCache虽然年久失修,但是里面的很多设...

  • iOS-YYKit(控件)

    YYAnimatedImageView YYCache - 本地存储数据,类似NSUserDefaults YY...

  • YYCache - 小数据缓存

    https://github.com/ibireme/YYCache 小数据存储:1、plist(NSUserDe...

  • 深入理解YYCache

    前言 本篇文章将带来YYCache的解读,YYCache支持内存和本地两种方式的数据存储。我们先抛出两个问题: Y...

  • iOS YYCache 源码解析 观后感

    前言 开发经常会用到数据的存储,自定义对象保存等操作。下面我们来介绍下目前最火的存储框架YYCache,他的存储使...

  • iOS开发小贴:缓存

    YYCache学习篇 首先,YYCache GitHub地址 YYCache源码分析(一)YYCache源码分析(...

  • YYKIT-YYCache

    一、YYCache的组成 YYCache由YYCache、YYDiskCache、YYMemoryCache和YY...

  • 记一次sleuth发送zipkin异常引起的OOM

    一、问题背景 一次生产事故,线上服务响应慢;作为常规操作,服务的VM启动参数有配置OOM提取内存DUMP信息: 这...

  • netty线上问题排查

    记一次压测异常排查

网友评论

      本文标题:记一次YYCache引起的存储异常

      本文链接:https://www.haomeiwen.com/subject/yxualltx.html