0

我有一张大约有 100 条记录的表。一条记录包含一个字符串(标识符)和一个 Blob。Blob 是一个序列化的路径 (Android) Blob 的大小在 20kb 到 100kb 之间。(我希望数据存储在数据库中,而不是作为文件存储在磁盘上)。数据库是只读的。

我喜欢将 blob 加载到路径对象中,并在启动时尽可能快地显示。从 db ( dbcache ) 加载后,我将它们存储在 LRUCache 中。从 LRUCache 引用路径后,速度非常快。从数据库的第一次加载很慢。(加载大约 100 条路径(20kb - 100kb)持续 5 秒,我喜欢提升)。有什么提示吗?

我找到了免费的 sqlite4java ( JNI ) 库,其中提到了性能和 sqlite。

这可以成为我提高阅读性能的解决方案吗?有这方面的经验吗?

4

1 回答 1

1

我不这么认为。

您不会说这些是只读参考数据还是可写事务。这会有所不同。

除非您要将这些数据反复读入数组,否则我会说性能不太可能成为 CPU 或内存的问题。1000 个 0.2MB 的文档将消耗 200MB 的 RAM。如果它们在 a 中是静态StringsMap,我敢打赌它们最终会出现在 perm gen 中。您应该相应地调整大小。

选择好数据结构。使其WeakHashMap具有SoftReference值类型。

你确定你会一直需要它们吗?

您假设您将在遇到性能问题之前遇到性能问题。我会做最简单的事情,可以工作,衡量性能,并且只在必要时使事情复杂化。

于 2013-09-16T12:07:02.653 回答