Подтвердить что ты не робот

SpriteKit SKView показывает использование памяти в памяти

Мне интересно, когда включен showsFields, использование памяти увеличивается очень быстро? Он может увеличиться до 500 МБ до 30 секунд. Если у моего mac всего 8 ГБ оперативной памяти, у меня, вероятно, будет меньше 8 минут для отладки перед предупреждением памяти, это будет худшим при отладке на реальном устройстве.

Снимок экрана ниже проверяется с реального устройства (iOS 9.2).

Использование памяти

Вы можете быстро попробовать его, создав проект SpriteKit и включив showsFields в методе viewDidLoad() внутри контроллера представления.

skView.showsFields = true

Если вы хотите увидеть, что делает showsFields, поместите этот фрагмент внутри метода сцены -didMoveToView(view:).

override func didMoveToView(view: SKView) {
    let myField = SKFieldNode.springField()
    myField.position = CGPointMake(frame.midX, frame.midY)
    myField.strength = 1.0
    self.addChild(myField)
}

Вот обсуждение showsFields от Apple

Обсуждение

Когда эта опция отладки включена, каждый раз, когда кадр отображается, изображение зарисовывается за вашей сценой, которое показывает эффекты любых полей физики, содержащихся в сцене.

4b9b3361

Ответ 1

Похоже, что отладочное изображение, нарисованное за кадр, не очищается должным образом, что, вероятно, ведет к утечке памяти.

Лучше всего записать отчет об ошибке с помощью Apple через https://developer.apple.com/bug-reporting/ поэтому они знают, что у нескольких людей есть эта проблема и, можно надеяться, дают более высокий приоритет.

Надеюсь, что это поможет.

С уважением, Mukund