2017-09-26 3 views
-1

Welchen Ansatz sollte ich verwenden, um Datenträger-E/A beim Lesen/Schreiben in die SQLite-Datenbank in Android zu minimieren? Etwas wie ConcurrentHashMap mit WeakReferences? Caffeine? GuavaCache?Android: Caching von SQLite-Entitäten im Speicher

Sollte ich eingebaute Caches in ORMs wie GreenDao, DBFlow, ORMLite verwenden? Die Dokumentation ist sehr vage, wenn es darum geht, diese Caches zu löschen ... Wann sollte ich sie löschen? Sollte ich?

Ich habe versucht, Cache in ORMLite zu ermöglichen, aber es gab Fehler: NULL-Werte statt leeren ausländischen Sammlungen nach Kaskade löschen/Einsatz von Einheiten ...

Also, was ist die beste Praxis? Vielleicht überhaupt keinen Cache zu verwenden und nur asynchron von der DB zu lesen/schreiben, um frische Daten zu gewährleisten?

Antwort

0

Sie können die Lesevorgänge mit einer Lru cache in die Datenbank einbinden, um den Speicherbedarf zu reduzieren (da dieser nicht unabhängig wächst). Sie müssen die Datensätze jedoch ungültig machen, falls sie aktualisiert/aus dem Speicher entfernt werden.

Kurzes Video-Intro here.