Разница в производительности при назначении в Obj-C? - PullRequest
0 голосов
/ 19 июня 2011

Хотелось бы узнать, есть ли разница в производительности между ними:
- создать объект со значением существующего объекта, затем присвоить себе = его модифицированную версию
AND
-создать и объект со значением = измененное значение существующего объекта

Пример кода в Objective-C:

UIImage* img= img2;
img = [img apply:filter];

VS

UIImage* img=[img2 apply:filter];

Спасибо

Ответы [ 3 ]

3 голосов
/ 19 июня 2011

Это:

UIImage* img= img2;

не «создает новый объект», он просто заставляет «img» ссылаться на тот же объект, что и «img2».

В любом случае все, что вы делаете, это назначаете указатель, так что нет существенной разницы в производительности.

1 голос
/ 19 июня 2011

Если метод apply всегда возвращает новое изображение, то нет, между этими двумя вещами нет ни малейшего различия. Основное отличие состоит в том, что в первой из них первая строка теряется: вы присваиваете img2 img, но затем отбрасываете это назначение, заменяя значение img другим изображением (результат apply). Но даже эти потери не влияют на производительность, потому что назначение объекта - это присвоение указателя, что тривиально (копирование данных не выполняется или что-то в этом роде).

0 голосов
/ 19 июня 2011

На этом уровне вы имеете дело с тем, что компилятор все равно оптимизирует.Может быть дополнительное назначение, которое происходит в первом, которое не происходит во втором (которое будет иметь незначительное влияние на производительность, потому что вы просто имеете дело с указателями), но я думаю, что любой компилятор, достойный его соли, превратит эти дваЗаявления в той же сборке.

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