Ios 加载usdz文件时内存问题

Ios 加载usdz文件时内存问题,ios,swift,memory-management,arkit,usdz,Ios,Swift,Memory Management,Arkit,Usdz,我正在将一个.usdz文件加载到我的ARSCNView中,到目前为止,它工作正常,只是当我将多个对象加载到场景中时,应用程序崩溃,并显示消息:由于内存问题而终止 我使用的是苹果默认的.usdz samples(),robot文件大约有13.5MB大 它最多可处理4-5个实例,然后崩溃 ARKit应用程序的限制是如此之小,还是我做错了什么? 这是我的密码: // My touch point on the screen let touchLocation = sender.location(in:

我正在将一个.usdz文件加载到我的ARSCNView中,到目前为止,它工作正常,只是当我将多个对象加载到场景中时,应用程序崩溃,并显示消息:由于内存问题而终止

我使用的是苹果默认的.usdz samples(),robot文件大约有13.5MB大

它最多可处理4-5个实例,然后崩溃

ARKit应用程序的限制是如此之小,还是我做错了什么?

这是我的密码:

// My touch point on the screen
let touchLocation = sender.location(in: sceneView)    

// We have a touch point on an ARPlane
if let result = self.sceneView.hitTest(touchLocation, types: ARHitTestResult.ResultType.existingPlaneUsingExtent).last {

    let position = SCNVector3Make(result.worldTransform.columns.3.x, result.worldTransform.columns.3.y, result.worldTransform.columns.3.z)

    // Load the .usdz model        
    guard let usdzURL = Bundle.main.url(forResource: "toy_robot_vintage", withExtension: "usdz") else {
        return
    }

    // Create a node, set position and scale
    let referenceNode = SCNReferenceNode(url: usdzURL)!
    referenceNode.load()
    referenceNode.position = position
    referenceNode.scale = SCNVector3Make(0.01, 0.01, 0.01)

    // Add node to scene
    sceneView.scene.rootNode.addChildNode(referenceNode)
}

应用程序可以分配一定数量的内存,如果超过,操作系统会自动终止。 我在iPhone 6S上测试了一个简单的
ARKit
应用程序,添加一个大小约为13.5MB的usdz文件会增加该应用程序的内存使用量约280MB,该应用程序的内存限制为1.37GB,如Xcode的内存报告部分所示:

您可以看到每次将相同的usdz文件再次添加到场景中时内存使用量是如何增加的。
因此,从技术上讲,你不能(也可能不应该)同时向你的应用程序中添加多个usdz文件。

应用程序可以分配一定的内存量,如果超过,它将被操作系统自动终止。 我在iPhone 6S上测试了一个简单的
ARKit
应用程序,添加一个大小约为13.5MB的usdz文件会增加该应用程序的内存使用量约280MB,该应用程序的内存限制为1.37GB,如Xcode的内存报告部分所示:

您可以看到每次将相同的usdz文件再次添加到场景中时内存使用量是如何增加的。 因此,从技术上讲,你不能(也可能不应该)同时向你的应用程序中添加多个usdz文件