Я устанавливаю свойство кадра UIImageView на частоте около 30 Гц.Инструменты показывают, что QuartsCore выделяет (и освобождает) 88 байтов на этой частоте.Следующий код вызывает эту проблему.
CGPoint point = vectorToCircle(vec) ;
CGRect dotFrame = self.dot.frame ;
dotFrame.origin.y = (center.y - kDotHalfHeight) - point.y * kFlatRadius ;
dotFrame.origin.x = (center.x - kDotHalfWidth) + point.x * kFlatRadius ; ;
// MEMORY: this is causing allocations in QuartsCore
self.dot.frame = dotFrame ;
Приборы показывают высокую чистую и общую пропорцию для распределений.Я немного беспокоюсь о фрагментации памяти с течением времени.
Есть ли способ устранить это, или мне нужно переосмыслить свой дизайн?
Обновление
Я пробовал это на слое, и это все еще происходит.Если я установлю кадр на константу, выделения не произойдут.Только при изменении источника 88 байт распределяются
Обновление 2
Использование свойства transform также показывает, что QuartsCore постоянно выделяет память.Адреса для распределений действительно увеличиваются, но никогда не перезагружаются (проверяя круговое буферное пространство).