【问题标题】:why this code runs slow on device but fast on simulator in iphone为什么此代码在设备上运行缓慢但在 iPhone 的模拟器上运行速度快
【发布时间】:2011-01-28 07:09:10
【问题描述】:

关于为什么这段代码在设备上运行缓慢但在 iphone 模拟器上运行速度快的任何想法,我正在 cocos2d 中制作游戏,并且我正在通过 CCTouchBegan、CCTouchMoved、CCTouchEneded(ccp 函数)将对象从一个地方移动到另一个地方然后我采取行动,

哪位朋友可以告诉我解决这个问题的主要问题是什么,

【问题讨论】:

  • 请查看您之前的问题并在适用时接受答案。来自 Stack Overflow 的常见问题解答:“当您确定哪个答案对您最有帮助时,通过单击答案左侧的复选框轮廓将其标记为已接受的答案。这可以让其他人知道您的问题得到了很好的回答。这样做很有帮助,因为它向其他人表明您从社区中获得了价值。 (如果你不这样做,人们通常会礼貌地要求你返回并接受更多问题的答案!)'

标签: iphone cocos2d-iphone


【解决方案1】:

模拟器是模拟器而不是模拟器。模拟器真正做的只是提供一个运行 iOS 应用程序的窗口。您会注意到,当您为模拟器构建时,系统架构设置为 i386。当您使用模拟器时,您正在为 Mac 编译。没有内存限制、沙盒等。事实上,我认为您的应用程序甚至显示为它自己的进程。

这就是为什么当你在设备上运行它时,你会受到打击。你只需要努力优化你的代码。模拟器太可怕了。只需使用您的设备进行调试,它就可以避免您的困惑。如果您发布代码,我们或许可以帮助您加快速度。

愉快的编码。

【讨论】:

    【解决方案2】:

    运行模拟器的计算机和 iOS 设备的基本硬件非常不同,从 CPU 时钟速度到指令并行性、到分支预测、到缓存大小、到内存带宽、到可用内存。考虑到不同的 ISA,可能的编译器优化也可能不同。通用代码在 Mac 上的模拟器上运行速度比在 iPhone 上快一个数量级的情况并不少见。

    【讨论】:

      【解决方案3】:

      可能有很多原因,例如(也)#simulator vs 实际设备

      1. 内存不足可能是您实际设备中的第一个问题,因为您将安装不同类型的大型应用程序,但在模拟器的情况下您不会安装 t。
      2. 低功耗问题,因为实际设备将由电池供电,而不是像模拟器那样一直保持恒定功率。
      3. 其他应用程序会干扰您的应用程序运行周期,但在模拟器中,您在测试应用程序时几乎不会运行任何应用程序。
      4. 您的 MAC 中的用户界面 (UI) 无法像您在实际设备中看到的那样清晰,因此看起来正确可能实际上并不正确。
      5. 应用程序被调用干扰,在模拟器中这种类型的干扰永远不会发生。

      【讨论】:

        猜你喜欢
        • 2019-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        • 2019-01-21
        • 2016-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多