美文网首页
缓存技术

缓存技术

作者: TimMei3345 | 来源:发表于2017-02-28 17:03 被阅读0次

    内存缓存

        1. LRU:缓存内部用双向链表和NSDictionary实现LRU(least-recently-used)淘汰算法
        2.缓存控制:支持多种缓存控制方法,总数量、总大小、存活时间、空闲空间
        3.兼容性:API和NSCache保持一致,优化同步访问性能,用OSSpinLock保证线程安全
        4.对象释放控制:对象的释放可以配置为同步和异步进行,配置在主线程和后台线程进行
        5.自动清空:当收到内存警告或app进入后台,缓存可以配置为自动清空
    

    磁盘缓存

        特点:基于SQLite数据库,可以很好的支持源数据、拓展方便、数据统计速度快,容易实现LRU或其他淘汰算法。根据SQLite的真机表现,在iPhone6S 64G下,SQLite写入性能比直接写文件要高,但读取性能取决于数据大小:当单条数据小于20K时,数据越小SQLite读取性能越高;单条数据大于20K时,直接写入文件更快一点。和SQLite官网描述
    
     [http://www.sqlite.org/intern-v-extern-blob.html](http://www.sqlite.org/intern-v-extern-blob.html) 
    

    基本一致。此外,直接从官网下载最新的SQLite源码编译,比iOS系统自带的sqlite3.dylib性能高很多。SQLite和文件存储相结合:key-value元数据保存SQLite,value数据根据大小选择SQLite或文件存储,NSURLCache选定的数据大小阈值为16K。

       1.可定制性: 磁盘缓存支持自定义的归档解档方法,以支持那些没有实现 NSCoding 协议的对象。
       2. 存储类型控制: 磁盘缓存支持对每个对象的存储类型 (SQLite/文件) 进行自动或手动控制,以获得更高的存取性能。

    相关文章

      网友评论

          本文标题:缓存技术

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