Se compara el desempeño de salvar una ManagedObjectContext depende del número de objetos que contiene (sin cambios)?

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

Pregunta

A CoreData / pregunta general SQLite

¿Hay una diferencia significativa entre estos dos escenarios al guardar un NSManagedObjectContext usando una tienda de SQLite:

  • Después de añadir / cambiar / borrar uno objeto en un NSManagedObjectContext contiene 10 NSManagedObjects de otra manera sin cambios
  • Después de añadir / cambiar / borrar uno objeto en un NSManagedObjectContext contiene 10'000 NSManagedObjects de otra manera sin cambios
¿Fue útil?

Solución

Generalizando a partir de mi experiencia con los objetos de empresa (que evolucionaron a partir de datos básicos) Me gustaría decir que sus dos escenarios sería igual de rápido y sin indexación y la segunda un poco más lento con la indexación.

El uso y la tienda de SQL, el costo de añadir un objeto se fija en gran medida independientemente de cuántos otros objetos están en la gráfica. La indexación no causa un efecto de escala debido a que el índice es dependiente de otros objetos existentes. Sin embargo, en la gran mayoría de los casos, esto no es significativo.

Los más complejas las relaciones dentro de la gráfica más ahorra son impactados por tamaño total gráfico. Obviamente, si usted tiene gráfica con sólo diez objetos, entonces ninguna relación puede tener más de diez objetos en él. Si usted tiene uno con 10.000, las relaciones son potencialmente mucho más grande y tener más tiempo para procesar.

En suma, la base de datos SQL con una tienda parece ser en gran medida afectada por el tamaño de la gráfica.

Otros consejos

Perfiles le dirá si hay una diferencia significativa. Sin embargo, sospecho que el tipo de la coordinadora de la tienda afectará las actuaciones. La actualización de un objeto en una base de datos SQLite es probablemente más rápido y más escalable que hacerlo en un árbol XML.

En mi experiencia anterior que no hay una diferencia significativa. Si se añade el objeto / cambiado / eliminado contiene una gran cantidad de atributos indizados, a continuación, porque va a ser un poco más si se compara con el caso de un objeto sin atributos indexados, pero esto es de esperar ya que los índices también se modificarán también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top