菜鸟教程小白 发表于 2022-12-12 10:57:46

ios - 为什么我的 iOS 应用程序占用如此多的内存和 CPU?


                                            <p><p>我有一个简单的应用程序,它有一个简单的菜单屏幕。但由于某种原因,内存超过 130 mb,而 CPU 总是上升到 80% 以上。这是正常的吗?还是我做错了什么?</p>

<p>这是配置文件图片:</p>

<p> <a href="/image/R3KpY.png" rel="noreferrer noopener nofollow"><img src="/image/R3KpY.png" alt="enter image description here"/></a> </p>

<p>这里是菜单场景:</p>

<p> <a href="/image/gsfCv.png" rel="noreferrer noopener nofollow"><img src="/image/gsfCv.png" alt="enter image description here"/></a> </p>

<p>这里是调试导航器:</p>

<p> <a href="/image/C5cFV.png" rel="noreferrer noopener nofollow"><img src="/image/C5cFV.png" alt="enter image description here"/></a> </p>

<p>代码如下:</p>

<pre><code>import UIKit
import SpriteKit

class GameViewController: UIViewController {

var gameScene: SKScene!
var skView: SKView!

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.changeScene(_:)), name: &#34;ChangedScene&#34;, object: nil)
    skView = self.view as! SKView
    gameScene = IntroScene(size: skView.bounds.size)
    gameScene.scaleMode = .AspectFill
    skView.presentScene(gameScene)
}

func changeScene(notification: NSNotification) {

    let message = notification.userInfo![&#34;sceneName&#34;] as! String

    let transition = SKTransition.revealWithDirection(.Left, duration: 1.0)
    if message == &#34;SelectScene&#34; {
      gameScene = SelectScene(size: skView.bounds.size)
      skView.presentScene(gameScene, transition: transition)
    }

    if message == &#34;MatchingGameScene&#34; {
      gameScene = MatchingGameScene(size: skView.bounds.size)
      skView.presentScene(gameScene, transition: transition)
    }

    if message == &#34;SoundGameScene&#34; {
      gameScene = SoundGameScene(size: skView.bounds.size)
      skView.presentScene(gameScene, transition: transition)
    }
}

override func shouldAutorotate() -&gt; Bool {
    return true
}

override func supportedInterfaceOrientations() -&gt; UIInterfaceOrientationMask {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
      return .AllButUpsideDown
    } else {
      return .All
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Release any cached data, images, etc that aren&#39;t in use.
}

override func prefersStatusBarHidden() -&gt; Bool {
    return true
}
}
</code></pre>

<p>如您所见,内存使用率为 130mb,CPU 超过 80%。这是正常的吗?我预计它会比 130mb 和 80% 小得多,因为包括图像在内的整个应用程序文件仅略高于 2.5mb。为什么会这样?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您实际上是在检查真实设备吗? Xcode 模拟器使用的内存大约是真实设备的 3 倍,并且 CPU 使用率总是很高。</p>

<p>在真实设备上运行你会发现你的 CPU 使用率会下降很多,内存会下降到大约 40-50Mb。这对于 spriteKit 游戏来说是正常的,您无需担心。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为什么我的 iOS 应用程序占用如此多的内存和 CPU?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36587610/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36587610/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为什么我的 iOS 应用程序占用如此多的内存和 CPU?