我正在处理需要“照片”类型呈现多个缩略图图像的应用程序的一部分。全尺寸图像非常大,每次生成缩略图花费的时间太长,所以我要缓存缩略图。
我很难确定创建文件系统后如何最好地存储缩略图。我可以想到一些可能性,但我不喜欢它们中的任何一种:
NSKeyedArchiver/unArchiver
但是从我能找到的内容来看,无论何时添加/删除缩略图,我都必须重新创建整个存档。也许我有一些东西可以忽略?有关最佳方法的任何建议吗?
答案 0 :(得分:2)
我会选择第二种选择。在iDevices上,您使用闪存。与HDD相比,访问许多文件的性能损失非常低。您也可以在内存中缓存一些内容,以防止经常读取同一个文件。 SDWebImage缓存机制包含一个很好的示例,如何做到这一点。
第三个选项 - 使用一个文件可能意味着使用数据库文件。如果存储未压缩的数据,您可以在那里获得一些性能改进。您需要进行一些性能测试,因为加载更多数据(未压缩形式的拇指)可能会降低速度,从而节省CPU以获得更多存储访问。
组合方法是将缩略图存储为文件,但采用未压缩格式(不是.jpg,.png等)
第四个选项值得考虑,只要缩略图相当小:将它们保存在CoreData中。