Чтение mikeash.com: авторелиз быстр. .
То, что он не тестировал, было авто-релизом против выпуска.Когда я проводил тестирование, миллион [[[NSObject alloc] init] autorelease]
плюс накладные расходы пула автоматического выпуска занимали порядка вдвое больше, чем [[[NSObject alloc] init] release]
.По общему признанию, я тестировал на 10.6 (предположительно, если он все еще пересчитан, так как я не включил GC), но относительная производительность все еще сохраняется.
Возможно, автоматическое освобождение использует пару микросекунд процессорного времени, но оно наверняка превосходит добавлениеутечка памяти из-за того, что вы изменили ivar на локальный или скопировали код и забыли о выпуске.
Заботьтесь о производительности, когда это важно.Когда это произойдет, вы можете решить использовать CFString вместо NSString и доступ к ivar вместо доступа к свойству и вызовам функций вместо методов класса.В целом, однако, важно писать код, который легко поддерживать, даже если это означает использование ЦП на 1% больше.