Quand fermer la connexion db sur Android? Chaque fois après votre opération terminée ou après la sortie de votre application

J’ai une application Android qui accède fréquemment à sqlite3 db local, pour des raisons de performances, donc je garde toujours la connexion ouverte. Mais un de mes amis m’a recommandé d’ouvrir / fermer la connexion à chaque opération.

1) Quel est votre avis sur ces deux méthodes? contre / pros. 2) J’ai fait des tests et j’ai trouvé que la connexion à la firebase database ne comportait pas trop de surcharges de perf. La surcharge de performances de la connexion à la firebase database varie-t-elle selon la taille de la firebase database?

Je ne connais aucune pénalité de performance en cas de fermeture / ouverture fréquente de la firebase database (quelle que soit sa taille). Je pense que la réponse à cette question dépend également du type d’application qui accède à la firebase database.

Est-ce que vous “interrogez à nouveau” la firebase database?
Ensuite, il semble rectifié pour le garder ouvert.

Récupérez-vous des données différentes chaque fois que vous récupérez quelque chose?
Encore une fois, il semble raisonnable de le laisser ouvert (car vous ne gagnerez pas à mettre en cache les données à la place).

Existe-t-il d’autres applications accédant à la même firebase database?
S’il existe un risque de problèmes de concurrence ou de blocage, il peut être judicieux de fermer la firebase database après avoir fini de lire / d’écrire à partir de / vers celui-ci.

En général, je dirais que vous pourriez gagner plus en cache des données qu’en laissant la firebase database ouverte (contrairement à la fermer) lors de l’optimisation des performances.

Si vous utilisez une firebase database en mémoire, vos données seront supprimées lorsque vous fermez la connexion.

Un peu un cas peut-être, mais il m’a juste surpris.

La documentation indique que la connexion peut être ouverte tant que vous en avez besoin. Et peut être fermé dans la méthode onDestroy (). Lien de documentation

Connexion à la firebase database persistante:

Comme getWritableDatabase () et getReadableDatabase () sont coûteux à appeler lorsque la firebase database est fermée, vous devez laisser votre connexion à la firebase database ouverte aussi longtemps que nécessaire. En règle générale, il est préférable de fermer la firebase database dans onDestroy () de l’activité appelante.

@Override protected void onDestroy() { mDbHelper.close(); super.onDestroy(); } 

De plus, l’ouverture et la fermeture si fréquentes d’une connexion peuvent vous amener à connaître des exceptions SQLite notoires si vous accédez à la firebase database à partir de plusieurs threads.

Voir, si vous accédez à db à partir de plusieurs threads même sur une seule connexion et que ces opérations ne sont pas atomiques, vous pouvez essayer de mettre à jour la firebase database qui a été fermée juste avant par un autre thread.