YYCache
高性能 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 (least-recently-used) 过期算法。
-
缓存控制:支持多种缓存控制方法:总计数量、总计大小、存活时间、空闲空间。
-
兼容性:API 基本与
NSCache
保持一致,所有方法都是线程安全的。
-
内存缓存
-
对象释放控制:对象的释放(release)可以配置为同步或异步进行,可以在主线程或后台线程进行。
-
自动清空:当收到内存警告或 App 进入后台时,缓存可以配置为自动清空。
-
磁盘缓存
-
可定制性:磁盘缓存支持自定义的归档解档方法,以支持那些没有实现 NSCoding 协议的对象。
-
存储类型控制:磁盘缓存支持对每个对象的存储类型 (SQLite/文件) 进行自动或手动控制,以获得更高的存取性能。
安装
手动安装
- 下载 YYCache 文件夹内的所有内容。
- 将 YYCache 内的源文件添加(拖放)到你的工程中。
- 链接以下 frameworks
- UIKit
- CoreFoundation
- QuartzCore
- sqlite3
- 导入
YYCache.h
。
文档
你可以在 CocoaDocs 查看在线 API 文档,也可以用 appledoc 本地生成文档。
系统要求
该项目最低支持 iOS 6.0
和 Xcode 7.0
。
许可证
YYCache 使用 MIT 许可证,详情见 LICENSE 文件。
相关链接
YYCache 设计思路与技术细节