La performance de la sauvegarde d'un ManagedObjectContext dépendent du nombre d'objets contenus (inchangé)?

StackOverflow https://stackoverflow.com/questions/2229690

Question

Une question CoreData générale / SQLite

Y at-il une différence significative entre ces deux scénarios lors de l'enregistrement d'un NSManagedObjectContext en utilisant un magasin de données SQLite:

  • Après avoir ajouté / modification / suppression une NSManagedObjectContext objet dans un contenant 10 autrement inchangé NSManagedObjects
  • Après avoir ajouté / modification / suppression une NSManagedObjectContext objet dans un contenant 10'000 autrement inchangé NSManagedObjects
Était-ce utile?

La solution

Généralisation de mon expérience avec des objets d'entreprise (données de base qui ont évolué à partir), je dirais que vos deux scénarios serait tout aussi rapide sans indexation et le second un peu plus lent avec l'indexation.

Utilisation et magasin SQL, le coût de l'ajout d'un objet est en grande partie fixe, peu importe combien d'autres objets sont dans le graphique. L'indexation ne provoque un effet d'échelle, car l'indice dépend d'autres objets existants. Cependant, dans la grande majorité des cas, ce n'est pas significatif.

Les relations plus complexes dans le graphique plus permet de gagner du sont touchés par la taille du graphique totale. De toute évidence, si vous avez graphique avec seulement dix objets, aucune relation ne peut avoir plus de dix objets qu'il contient. Si vous avez un avec 10 000, les relations sont potentiellement beaucoup plus grandes et prendre plus de temps à traiter.

En résumé, les données de base avec un magasin SQL semble être en grande partie affectée par seulement la taille du graphique.

Autres conseils

Le profilage vous dira s'il y a une différence significative. Cependant, je pense que le type du coordonnateur du magasin aura une incidence sur les performances. Mise à jour d'un objet dans une base de données SQLite est probablement plus rapide et plus évolutive que de le faire dans un arbre XML.

Dans mon expérience il n'y a pas de différence significative. Si l'objet ajouté / modifié / supprimé contient beaucoup d'attributs indexés, il prendra juste un peu plus par rapport au cas d'un objet sans attributs indexés, mais cela est normal puisque les index seront également modifiés ainsi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top