Да, создание множества автоматически выпущенных экземпляров на iPhone может создать проблемы с памятью, особенно в тесном цикле, поэтому я стараюсь избегать их, когда могу. Вы можете создавать собственные пулы автоматического выпуска для управления этим, но они также добавляют некоторые накладные расходы на производительность и дополнительный код, который вы должны отслеживать.
По этой причине, когда я выполняю высокоточные вычисления, я склонен использовать структуру NSDecimal C вместо NSDecimalNumbers. Фактически, я выполнил некоторые тесты по этому вопросу и обнаружил значительное увеличение производительности при работе со структурой C (скопировано из моего ответа здесь ):
NSDecimal
Additions per second: 3355476.75
Subtractions per second: 3866671.27
Multiplications per second: 3458770.51
Divisions per second: 276242.32
NSDecimalNumber
Additions per second: 676901.32
Subtractions per second: 671474.6
Multiplications per second: 720310.63
Divisions per second: 190249.33
Как видите, скорость вычислений между путями NSDecimal и NSDecimalNumber почти в пять раз больше. Самое большое различие между вычислениями NSDecimal и NSDecimalNumber было распределением памяти экземпляров NSDecimalNumber. Поэтому вам следует избегать размещения временных автоматически выпущенных экземпляров везде, где вы можете.