高性能 iOS 缓存框架。
(它是 YYKit 的组件之一)
性能
您可能需要 下载 和编译 sqlite 的最新版本,并忽略 iOS 系统中的 libsqlite3.dylib 以获得更高的性能。
有关更多基准案例,请参阅 Benchmark/CacheBenchmark.xcodeproj
。
特性
-
LRU:对象可以使用最少最近使用算法被替换。
-
限制:可以按计数、成本、年龄和可用空间来控制缓存限制。
-
兼容性:API 与
NSCache
类似,所有方法都是线程安全的。
-
内存缓存
-
发布控制:对象可以同步或异步在主线程或后台线程上释放。
-
自动清除:它可以在接收到内存警告或应用进入后台时自动替换对象。
-
磁盘缓存
-
自定义:它支持自定义归档和解档方法来存储不属于 NSCoding 的对象。
-
存储类型控制:它可以自动决定每个对象的存储类型(sqlite /文件)以获得更好的性能。
安装
手动
- 下载 YYCache 子目录中的所有文件。
- 将源文件添加到您的 Xcode 项目中。
- 链接到所需的框架
- UIKit
- CoreFoundation
- QuartzCore
- sqlite3
- 导入
YYCache.h
。
文档
完整的 API 文档可在 CocoaDocs 上找到。
您还可以使用 appledoc 在本地安装文档。
要求
此库需要 iOS 6.0+
和 Xcode 7.0+
。
许可
YYCache 在 MIT 许可下提供。有关详细信息,请参阅 LICENSE 文件。
中文介绍
高性能 iOS 缓存框架。
(该项目是 YYKit 组件之一)
性能
iPhone 6 上,内存缓存每秒响应次数 (越高越好):
iPhone 6 上,磁盘缓存每秒响应次数 (越高越好):
推荐访问 SQLite 官网下载和编译最新的 SQLite,以替换 iOS 自带的 libsqlite3.dylib,从而获得最高 1.5~3 倍的性能提升。
更多测试代码和用例见 Benchmark/CacheBenchmark.xcodeproj
。
特性
-
LRU: 缓存支持 LRU (最近最少使用) 淘汰算法。
-
缓存控制: 支持多种缓存控制方法:总数量、总大小、存活时间、空闲空间。
-
兼容性: API 基本和
NSCache
保持一致, 所有方法都是线程安全的。
-
内存缓存
-
对象释放控制: 对象的释放可以通过配置为同步或异步进行,可以在主线程或后台线程进行。
-
自动清空: 当收到内存警告或 App 进入后台时,缓存可以配置为自动清空。
-
磁盘缓存
-
可定制性: 磁盘缓存支持自定义的归档解档方法,以支持没有实现 NSCoding 协议的对象。
-
存储类型控制: 磁盘缓存支持对每个对象的存储类型 (SQLite/文件) 进行自动或手动控制,以提高存取性能。
安装
手动安装
- 下载 YYCache 文件夹内的所有内容。
- 将 YYCache 内的源文件添加(拖放)到您的工程。
- 链接以下框架
- UIKit
- CoreFoundation
- QuartzCore
- sqlite3
- 导入
YYCache.h
。
文档
您可以在 CocoaDocs 上查看在线 API 文档,也可以使用 appledoc 在本地生成文档。
系统要求
该项目最低支持 iOS 6.0
和 Xcode 7.0
。
许可证
YYCache 使用 MIT 许可证,详细信息请参阅 LICENSE 文件。
相关链接
YYCache 设计思路与技术细节