gpt4 book ai didi

android - 在给定 sqlite 进度的情况下,在 android 中存储图像的规范方式

转载 作者:行者123 更新时间:2023-11-29 01:07:33 25 4
gpt4 key购买 nike

我完全知道通常不建议将图像作为 blob 存储在数据库中。但是我最近遇到了this记录 sqlite 在读取和写入图像 (blob) 到数据库方面的性能提升的网站。简而言之,对于小文件,它现在比文件存储快大约 35%。许多安卓设备从中受益需要一些时间,因为旧设备使用旧版本的数据库。尽管如此,我 future 面临的问题是:

这会改变在 android 中存储图像的首选方式吗?现在,不仅将 uris 存储在数据库中,而且将小图像存储在数据库中,并且仅在需要的地方从文件存储中加载更高分辨率的图像,现在是不是一个更好的主意?

最佳答案

it is now roughly 35% faster then file storage, for small files

如果您阅读这篇文章,它指出:“实际时间因硬件、操作系统和实验的细节而异,并且由于现实世界硬件的随机性能波动。”它还直接使用 SQLite C API,甚至在 Android 测试中也是如此。

Will this change the preferred way of storing images in android?

可能,但不仅仅基于那篇文章。

首先,需要以 Android 开发人员访问数据库的方式重现测试:通过 Android 的基于 Java 的 SQLite API(SQLiteOpenDatabase 等)。

其次,速度只是一个考虑因素。内存是另一回事。将图像存储在数据库中将比将相同的图像存储为文件消耗更多的堆空间。对于文件,BitmapBitmapFactory 可以使用流来写入和读取文件(PNG、JPEG 等)。在 SQLite 的情况下,这不是一个选项。在那里,PNG/JPEG/无论什么都将是一个 byte[],占用堆空间并帮助 fragment 化堆。

第三,团队可能需要的其他功能(例如 FTS 索引、用于 Android 加密的 SQLCipher)可能会影响性能并需要进行测试。

将图像直接存储在数据库中还有其他好处,例如更容易删除数据(与必须删除行和删除相应的图像文件相比)。处理小图像的团队应该在各种硬件上运行全面的性能测试,然后再假设基于 BLOB 的图像存储对他们来说是一个净 yield 。

关于android - 在给定 sqlite 进度的情况下,在 android 中存储图像的规范方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45816028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com