我正在开发用于指纹匹配的专用 Android 设备。可以是此设备上具有 500K 记录的数据库。
我已经修改了这些设备上的 ROM 以使用指令增加堆大小 -
dalvik.vm.heapgrowthlimit=742m dalvik.vm.heapsize=812m
我正在尝试将大约 250MB 的数据库从 SQlite 预加载到内存中,这需要大量的时间。我已经使用 Android SQLite 接口在 java 中实现了这段代码。加载 32,000 条记录大约需要 10 分钟,使用 Android/Java 接口是否会失败,我应该在本机 C 代码中完成所有这些工作?
是否有任何改进可以使用 Android Java 界面加速光标加载?
当 Android 正在加载记录时,我不断看到这些消息:
-03 09:18:53.802 D/dalvikvm( 5234): GC_FOR_ALLOC freed 18K, 3% free 305194K/313816K, paused 187ms, total 187ms
10-03 09:18:53.982 D/dalvikvm( 5234): GC_FOR_ALLOC freed 0K, 3% free 305213K/313816K, paused 178ms, total 178ms
10-03 09:18:53.982 I/dalvikvm-heap( 5234): Grow heap (frag case) to 300.238MB for 4963-byte allocation
10-03 09:18:54.163 D/dalvikvm( 5234): GC_FOR_ALLOC freed 19K, 3% free 305204K/313824K, paused 176ms, total 176ms
10-03 09:18:54.333 D/dalvikvm( 5234): GC_FOR_ALLOC freed <1K, 3% free 305222K/313824K, paused 178ms, total 178ms
10-03 09:18:54.333 I/dalvikvm-heap( 5234): Grow heap (frag case) to 300.246MB for 4389-byte allocation