在 Android 中,什么更快:检查磁盘上是否存在文件或从 SQLite 数据库中查找标志?
In Android, what's faster: Checking if a file exists on disk or looking up a flag from a SQLite DB?
我的应用程序中有很多图片 (~500),服务器上有更多图片 (~2000)。
如果有图片我想从磁盘上加载,如果磁盘上没有图片我会去网上下载。
问题:为了非常快速地检查文件是否确实在磁盘上,我考虑在简单的 SQLite table 中存储一个标志来判断图像是否在磁盘上。这样一个带有标志的 table 会给我带来任何性能提升,还是文件系统 fileExists() 一样快?
( 是的,我知道我 could/should 测试了它,但如果有人能快速回答我也很高兴 ;-) )
仅供参考:我知道图像加载库,如 Picasso、Glide、Fresco 等,但仍然想知道哪个更快,SQlite 访问文件系统。
SQL站点数据库是文件。与执行 SQL 查询相比,检查文件是否存在的磁盘 I/O 应该更少。
RAM 更快。如果您打算经常进行此检查,您可以考虑维护磁盘上哪些文件的内存缓存(例如,HashSet<String>
)并检查它。
我的应用程序中有很多图片 (~500),服务器上有更多图片 (~2000)。
如果有图片我想从磁盘上加载,如果磁盘上没有图片我会去网上下载。
问题:为了非常快速地检查文件是否确实在磁盘上,我考虑在简单的 SQLite table 中存储一个标志来判断图像是否在磁盘上。这样一个带有标志的 table 会给我带来任何性能提升,还是文件系统 fileExists() 一样快?
( 是的,我知道我 could/should 测试了它,但如果有人能快速回答我也很高兴 ;-) )
仅供参考:我知道图像加载库,如 Picasso、Glide、Fresco 等,但仍然想知道哪个更快,SQlite 访问文件系统。
SQL站点数据库是文件。与执行 SQL 查询相比,检查文件是否存在的磁盘 I/O 应该更少。
RAM 更快。如果您打算经常进行此检查,您可以考虑维护磁盘上哪些文件的内存缓存(例如,HashSet<String>
)并检查它。