Estoy usando RealityKit para generar una malla después de un intervalo de tiempo particular y lo agrego como elemento secundario al nodo raíz. Antes de crear otra malla, elimino la Entidad creada previamente del nodo principal y también le plainCard = nil .
A continuación se muestra el código de muestra:
import RealityKit import Combine import SceneKit private var sceneEventsUpdateSubscription: Cancellable! class ViewController: UIViewController { @IBOutlet var arView: ARView! let anchor = AnchorEntity(world: [0,0,0]) let rootEntity:Entity = Entity() var plainCard:ModelEntity? = nil var pivot = SCNMatrix4MakeTranslation(0.069, 0.155, 0) var timer: Timer? = nil override func viewDidLoad() { super.viewDidLoad() timer = Timer.scheduledTimer(timeInterval: 0.02, target: self, selector: #selector(addARElement), userInfo: nil, repeats: true) arView.scene.addAnchor(anchor) anchor.addChild(rootEntity) self.rootEntity.position = [0,0,-0.5] } @objc func addARElement() { plainCard?.removeFromParent() plainCard = nil plainCard = ModelEntity(mesh: MeshResource.generateBox(width: 0.2, height: 0.11,depth: 0), materials: [UnlitMaterial(color: .red)]) plainCard?.transform = Transform(matrix: simd_float4x4(pivot)) rootEntity.addChild(plainCard!) } }Aquí está mi pregunta:
Con esta creación de caja en un intervalo particular, la memoria continúa aumentando, hay un aumento significativo en el uso de la CPU, el impacto energético es alto. Después de un punto, la aplicación falla debido al uso excesivo de memoria. ¿Qué puede estar fallando aquí? ¿Dónde está ocurriendo la fuga de memoria?
Después de 5 minutos de ejecución de la aplicación: el cuadro se redujo a 30, la memoria aumentó con respecto a la imagen anterior y el impacto energético es muy alto
Probé los instrumentos de Xcode que muestran que la asignación de Heap está obteniendo un pico significativo 