我正在使用專用Android設備進行指紋匹配。可以是該設備上具有500K記錄的數據庫。在Android上處理大型sqlite數據庫
我已經修改這些設備上的ROM使用指令來增加堆大小 -
dalvik.vm.heapgrowthlimit =742米 dalvik.vm.heapsize =812米
我試圖預負載從SQlite到內存的大約250MB數據庫需要大量的時間。我使用Android SQLite接口在java中實現了這個代碼。大約需要10分鐘才能加載32,000條記錄,使用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
是否真的有必要預加載數據庫中的東西?使用數據庫的原因之一是爲了快速訪問,除非每次加載內容時都要進行嚴格的處理,否則簡單地重新加載可能會更簡單。 「 –
」使用Android/Java接口是一個失敗的原因,我應該在原生C代碼中完成所有這些工作?「 - 我希望在本地代碼中也需要很長時間。 **巨大**,閃存速度很慢。更不用說,我不確定SQLite是否被認爲是NDK的一部分。 「使用Android Java界面可以加快遊標加載速度嗎?」 - 可能,但是我們看不到你的代碼,因爲你沒有粘貼到你的問題中。使用Traceview來確定你的性能問題所在。 – CommonsWare