Влияние производительности этих двух методов одинаковы? - PullRequest
0 голосов
/ 12 ноября 2011

Я разрабатывал приложение для iPhone и только начал добавлять CoreData для сохранения.Однако я наткнулся на одну дилемму,

Контекст: у меня есть сущность с именем Person, у сущности Person есть одно имя атрибута.

Задача: изменить имя объекта Person. (NSManagedObject)

Тест производительности: Какая опция будет быстрее и лучше в плане производительности?

Вариант 1. Предполагается, что объект был создан только один раз

  1. Получить объект изCoreData
  2. Редактировать имя объекта
  3. Сохранить NSManagedObjectContext.

Опция 2. Каждый раз создавать новый объект.

  1. Удалить ранее созданный объект
  2. Создать новый объект
  3. Сохранить NSManagedObjectContext.

ПРИМЕЧАНИЕ. У меня только один атрибут!Название.Представьте, что у меня есть игра, и у пользователя спрашивают имя игрока. Я знаю, что при такой небольшой задаче разница в производительности будет незначительной.Но что позже, если я внедряю что-то в хардкор?Так что для защиты какой лучше?

Спасибо за любой вклад!Мои мысли: оба варианта должны быть похожими в отношении производительности.По мере извлечения данных, а затем обновления и сохранения похоже на удаление, повторное создание и сохранение.Я хочу, чтобы кто-то доказал, что я не прав.

1 Ответ

1 голос
/ 12 ноября 2011

Вариант 1 лучше, потому что Вариант 2 сумасшедший.

Я не тестировал производительность, но кажется маловероятным, что вариант 2 будет быстрее, так как с созданием объекта связаны накладные расходы. Но даже если вариант 2 был немного быстрее, он не имеет логического смысла как процесс, поэтому он не является отличным способом структурировать ваш код. Если это будет тот же самый Персона, которого вы представляете, тогда представьте их одним и тем же объектом. Все остальное просто просит головных болей неожиданным образом, так как вы начинаете со странной договоренности. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...