美文网首页工作博客
【iOS】YYCache源码阅读笔记

【iOS】YYCache源码阅读笔记

作者: abs_ | 来源:发表于2018-11-17 16:35 被阅读2次

基本思路

由内存缓存和磁盘缓存组成,内存缓存提供容量小但高速的存取功能,磁盘缓存提供大容量但低速的持久化存储,磁盘缓存中磁盘存储采用了文件+sqlite结合的方式。

内存缓存

  1. 通过双向链表维护一个key集合,值的存储通过字典实现(CFMutableDictionaryRef)淘汰算法作用于双向链表
  2. LRU淘汰算法: 根据数量、存储空间和时间 (含义:Least Recently Used 意为最近最少使用,这个算法的精髓在于如果一块数据最近被访问,那么它将来被访问的几率也很高,根据数据的历史访问来淘汰长时间未使用的数据)

磁盘缓存

  1. 线程安全:通过信号量加锁(使用信号量的原因:信号量等待时,不消耗CPU资源,适合长时间等待。扩展:锁的种类及各个锁的优劣)

某些代码细节的疑问:

  1. @package的含义: @package修饰变量,对于framework内部,相当于@protected, 对于framework外部,相当于@private。

Using the modern runtime, an @package instance variable has @public scope inside the executable image that implements the class, but acts like@private outside

扩展

双向链表

图示:

双向链表图示

特点:

  1. 头结点只有后驱,尾节点只有前驱
  2. 优点:可以找到前驱和后继,可进可退;缺点:增加删除节点复杂。

锁的种类及各个锁的优劣:

iOS 中常见的几种锁-代码示例

未完待续...

相关文章

  • YYCache源码阅读一YYMemoryCache

    YYCache源码阅读一(YYMemoryCache) YYCache:高性能 iOS 缓存框架。 YYCache...

  • 【iOS】YYCache源码阅读笔记

    基本思路 由内存缓存和磁盘缓存组成,内存缓存提供容量小但高速的存取功能,磁盘缓存提供大容量但低速的持久化存储,磁盘...

  • iOS YYCache源码阅读

    1. 初始化 [[YYCache alloc] initWithName:@""]; YYCache提供静态方法和...

  • 收集的一些網站

    从 YYCache 源码 Get 到如何设计一个优秀的缓存iOS学习笔记38-MJExtension使用UICOL...

  • iOS开发小贴:缓存

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

  • YYKit-YYCache源码分析

    YYKit-YYCache源码分析 YYCache是一个高性能iOS缓存框架,是YYKit组件之一。 框架架构 Y...

  • YYCache 源码剖析:一览亮点

    YYCache 源码剖析:一览亮点 YYCache 源码剖析:一览亮点

  • 源码阅读:YYCache

    前言 因项目需要加入了大量的数据缓存功能,在优化项目本地缓存组件的之前。研究阅读了一下YYCache这个国内最优秀...

  • YYCache源码阅读

    模块 YYCache 这个类是底层YYMemoryCache和YYDiskCa...

  • 源码阅读——YYCache

    前言 缓存在iOS开发中很常用,大到网络请求的缓存,小到各种属性的缓存。比如用户发送朋友圈时,写了很多内容,因为某...

网友评论

    本文标题:【iOS】YYCache源码阅读笔记

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