Será que o desempenho da economia de um ManagedObjectContext depender do número de objetos contidos (inalterado)?

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

Pergunta

Um general CoreData / pergunta SQLite

Existe uma diferença significativa entre esses dois cenários ao salvar um NSManagedObjectContext usando uma loja SQLite:

  • Depois de adicionar / alterar / exclusão um objecto numa NSManagedObjectContext contendo 10 NSManagedObjects de outra forma inalterada
  • Depois de adicionar / alterar / exclusão um objecto numa NSManagedObjectContext contendo 10'000 NSManagedObjects de outra forma inalterada
Foi útil?

Solução

generalizar a partir de minha experiência com o Enterprise Objects (que Core Data evoluíram a partir de) eu diria que ambos os cenários seria igualmente rápido sem a indexação eo segundo um pouco mais lento com a indexação.

Usando e armazenar SQL, o custo da adição de um objeto é, em grande parte fixa, independentemente de como muitos outros objetos estão no gráfico. Indexação causar um efeito de escala porque o índice é dependente de outros objetos existentes. No entanto, na grande maioria dos casos, isso não é significativo.

As mais complexas as relações dentro do gráfico mais salva são impactados pelo tamanho total do gráfico. Obviamente, se você tiver gráfico com apenas dez objetos, então nenhum relacionamento pode ter mais de dez objetos nele. Se você tiver um com 10.000, as relações são potencialmente muito maiores e levam mais tempo para processo.

Em suma, Core Data com uma loja SQL parece ser em grande parte afetada por apenas o tamanho do gráfico.

Outras dicas

Profiling vai dizer se há uma diferença significativa. No entanto, eu suspeito que o tipo do coordenador loja vai afetar as performances. Atualizando um objeto em um banco de dados SQLite é provavelmente mais rápido e mais escalável do que fazê-lo em uma árvore XML.

Na minha experiência anterior não é uma diferença significativa. Se o objeto a ser adicionado / alterado / excluída contém uma série de atributos indexados, então vai demorar apenas um pouco mais quando comparado com o caso de um objeto sem atributos indexados, mas isso é esperado uma vez que os índices também será modificado também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top