В какой момент отрисовка начнет замедлять частоту кадров?

У меня есть игра SpriteKit, которую я создал, и я некоторое время пытался улучшить частоту кадров (в настоящее время она падает примерно до 45). Совсем недавно я проверял количество «розыгрышей», которые у меня были, поскольку мне это было рекомендовано. Я делаю это, устанавливая переменную showsDrawCount в значение true, когда представляю свою сцену. В настоящее время моя сцена имеет 55 розыгрышей.

введите здесь описание изображения

Это замедлит мою частоту кадров? Если да, то сколько отрисовок должно быть, чтобы начать замедлять частоту кадров? и как я должен уменьшить ничьих? Заранее спасибо.

редактировать: я исправил часть проблемы, переместив функции рисования с sceneDidLoad на didMovetoview, и это уменьшило мои рисунки до

введите здесь описание изображения

Кстати, большинство моих розыгрышей (я думаю, 18) занимает вот это: < img src="https://i.stack.imgur.com/ea7WA.png" alt="введите здесь описание изображения">

примечание: телефон, который я тестирую, — это iPhone 5s с графическим процессором PowerVR Series 6.


person joshLor    schedule 07.04.2017    source источник
comment
это слишком много приводит к основанному на мнении ответу. Кроме того, слишком много для какого GPU? Для какой ситуации?   -  person Krythic    schedule 07.04.2017
comment
@Krythic Спасибо за комментарий, я обновил вопрос.   -  person joshLor    schedule 07.04.2017
comment
Взгляните на этот stackoverflow.com/a/22856964   -  person Whirlwind    schedule 07.04.2017
comment
55 проходов, чтобы нарисовать 22 узла? Ошибочка? это более одного прохода для каждого узла - у вас много SKShapeNodes, узлов с нестандартным режимом наложения и т. д. и т. д.? Является ли ignoresSiblingOrder истинным или ложным? Я думаю, нам нужно увидеть код, прежде чем мы сможем помочь.   -  person Steve Ives    schedule 07.04.2017
comment
Я получаю 60 кадров в секунду со 181 узлом в 22 вызовах отрисовки, поэтому вы можете выяснить, почему вам нужно так много вызовов отрисовки - проверьте порядок братьев и сестер, текстуры, SKShapeNodes и т. д.   -  person Steve Ives    schedule 07.04.2017
comment
что это за узлы?   -  person Knight0fDragon    schedule 07.04.2017
comment
@SteveIves Я считаю, что нашел большую часть проблемы. Я рисовал узлы формы в сцене, которая загружалась. Сцена загрузилась дважды, так что количество отрисовок почти удвоилось.   -  person joshLor    schedule 07.04.2017
comment
@joshLor Очевидно, «sceneDidLoad» вызывается дважды, но только при загрузке сцены. Это не должно влиять на частоту кадров или вызовы отрисовки.   -  person Steve Ives    schedule 07.04.2017
comment
@SteveIves Сцена загрузки вызывается дважды, как вы можете видеть здесь: stackoverflow. ком/вопросы/39590602/   -  person joshLor    schedule 07.04.2017
comment
@joshLor Я знаю, но наверняка sceneDidLoad не является частью игрового цикла и поэтому не должен влиять на частоту кадров?   -  person Steve Ives    schedule 07.04.2017
comment
@SteveIves О, это просто создает вдвое больше элементов, чем должно, поскольку создает их дважды   -  person joshLor    schedule 07.04.2017
comment
Хорошо - я понимаю, что вы имеете в виду. Но у вас все еще слишком много розыгрышей для количества узлов. Возможно, вы сможете вдвое сократить количество узлов, но вы сможете более чем вдвое сократить количество вызовов отрисовки.   -  person Steve Ives    schedule 07.04.2017
comment
@SteveIves Я добавил информацию в свой вопрос, чтобы вы могли ее увидеть.   -  person joshLor    schedule 07.04.2017
comment
@joshLor Я все еще думаю, что у вас слишком много розыгрышей из-за количества узлов. Было бы интересно увидеть ваш код.   -  person Steve Ives    schedule 13.04.2017
comment
@SteveIves Вы имеете в виду в целом или для данного изображения?   -  person joshLor    schedule 13.04.2017
comment
@joshLor для вашей сцены, которая использует 35 вызовов отрисовки для 16 узлов.   -  person Steve Ives    schedule 13.04.2017
comment
@SteveIves, не считая этого спрайта. У меня 11 узлов с 17 вызовами отрисовки.   -  person joshLor    schedule 13.04.2017
comment
@joshLor У вас по-прежнему больше вызовов отрисовки, чем узлов, тогда как в примерах в этой ветке вызовов отрисовки меньше, чем узлов. Если бы вы могли опубликовать свой код, это помогло бы людям понять, почему это так.   -  person Steve Ives    schedule 13.04.2017
comment
@SteveIves Я также рисую два других спрайта, которые вместе составляют разницу, которую я считаю.   -  person joshLor    schedule 13.04.2017
comment
@joshLor Это немного устарело, но в качестве теста я создал приложение с 4600 спрайтами на экране — оно использует 1 вызов отрисовки и работает со скоростью 60,0 FPS (iPhone 6S), поэтому вам действительно нужно понять, почему ваши узлы / вызовы отрисовки соотношение немного не в порядке.   -  person Steve Ives    schedule 29.06.2017
comment
Да, я выяснил некоторые другие вещи, которые замедляли это таймер и адмоб.   -  person joshLor    schedule 30.06.2017