使用sqlite4java的sqlite性能读取blob

时间:2013-09-16 11:59:18

标签: android performance sqlite blob

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

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

我找到了免费的sqlite4java(JNI)库,其中包含了关于性能和sqlite的内容。

这对我来说是否可以提高阅读效果?有这方面的经验吗?

1 个答案:

答案 0 :(得分:1)

我不这么认为。

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

除非你要反复将这些数据读入数组,否则我认为性能不太可能成为CPU或内存的问题。每份0.2MB的1000份文件将消耗200MB的RAM。如果它们在Strings中是静态的Map,我敢打赌它们最终会处于perm gen。你应该相应地调整大小。

选择好数据结构。将其设为WeakHashMap,其值为SoftReference

你确定你一直都需要所有这些吗?

您假设在拥有性能问题之前会遇到性能问题。我会做最简单的事情,可以衡量绩效,只会在必要时使问题复杂化。