В своем приложении SceneKit я обнаружил узкое место с точки зрения производительности во вложенном цикле, который запускался несколько тысяч раз.В этом цикле находится куча кода, который довольно счастливо масштабируется, кроме этой одной строки:
var scenePos = presentation.position
Это более чем в 100 раз медленнее, чем просто запрос позиции ПЛЮС десятки других вычислений, сравнений, поисков в массивахИ вызовы методов в сочетании с тем, что я делал внутри одного цикла.Я удивлен, что никто, кажется, еще не прокомментировал это, но я могу найти.
Почему это так, и есть ли обходной путь для этого помимо создания копии презентации каждого узла.так что вам не нужно спрашивать об этом узел презентации?Спасибо.
Правки: презентация.позиция только когда-либо читается, никогда не пишется.Ограничивающий ящик никогда не редактируется.Я использую динамический SCNPhysicsBody для нескольких узлов SCN, но подавляющее большинство статично.