全称Fast-serialization,地址:https://github.com/RuedigerMoeller/fast-serialization.git 官方自夸:up to 10 times faster 100% JDK Serialization compatible drop-in replacement (Ok, might be 99% ..)
比如这种需求: 一本书电子化后,每一页都是一个可序列化文件(不包括图片,与图片共同展示)。在移动端展示时,为了翻页体验更好更流畅(或者校园网太差老师想在家下载好再带到学校), 产品经理叫你在展示这本书之前先将所有页都加载下来,再进入展示场景。此时如果按页循环下载显然太慢,这种可序列化的文档往往能被压缩为原来的四分之一,所以采取 下载所有页对应的电子化文件压缩包的方式;此时你会发现,当你下载解压后,其中的每一页的电子化文件并没有在lru机制内,重新再每一页都走一遍DiskLruCache的缓存写操作??
那是不可能的!这种速度,岂不是...去幼稚园的车?我们不开这种车:) 读完DiskLruCache的源码发现,其关键操作只有三步:将某文件写到指定的统一的磁盘缓存目录中,将该文件按指定规则重命名,在journal文件中做一次记录。 所以我们的车应该这么开:
细节见源码,您到站了!谢谢star!
buildscript.repositories{ maven { url "https://jitpack.io" } }
allprojects.repositories{ maven { url "https://jitpack.io" } }
implementation 'com.github.jj532655203:FstDiskLruCache:1.1.3'