O impacto no desempenho desses dois métodos é o mesmo de diferente?

Eu tenho desenvolvido o aplicativo para iPhone e comecei a adicionar CoreData para persistência. No entanto, eu tropecei em um dilema,

Contexto: tenho Entity nomeada Person, Person Entity tem um nome de atributo.

Tarefa: Alterar nome do objeto Person (NSManagedObject)

Performance Test : Which option will be faster and better in matter of performance?

Opção 1: Assumir que o objeto foi criado apenas uma vez

  1. Obter objeto do CoreData </​​li>
  2. Editar o nome do objeto
  3. Salve NSManagedObjectContext.

Opção 2: Criar novo objeto a cada vez.

  1. Excluir o objeto criado anteriormente
  2. Criar novo objeto
  3. Salve NSManagedObjectContext.

NOTE : I have only one attribute! Name. Imagine I have game and user are being asked for their player name. I know there is will be not much difference in performance for a such a small task. But what later if I implement in something hardcore? So for defence which one is better?

Obrigado por qualquer tipo de entrada!


My Thoughts : Both options should be similar in matter of performance. As fetching data and than updating and saving seems similar to delete recreate and save. I want someone to prove-me errado.
0
Por que você não tenta sair e ver?
adicionado o autor Mankarse, fonte

1 Respostas

A opção 1 é melhor porque a opção 2 é maluca.

Eu não testei o desempenho, mas parece altamente improvável que a Opção 2 seja mais rápida, já que há sobrecarga associada à criação de um objeto. Mas mesmo que a Opção 2 seja um pouco mais rápida, ela não faz sentido lógico como um processo, por isso não é uma ótima maneira de estruturar seu código. Se continuar a ser a mesma Pessoa que você está representando, represente-os com o mesmo objeto. Qualquer outra coisa é apenas pedir dores de cabeça na pista de maneiras inesperadas, já que você está começando com um arranjo estranho. :)

1
adicionado