为什么这段代码在设备上运行得慢,但在iphone模拟器上运行得快

为什么这段代码在设备上运行得慢,但在iphone模拟器上运行得快,iphone,cocos2d-iphone,Iphone,Cocos2d Iphone,有没有想过为什么这段代码在iphone的模拟器上运行得慢而在iphone上运行得快,我在cocos2d中制作一个游戏,通过CCtouchBegind、CCTouchMoved、CCtouchEned(ccp函数)将一个对象从一个地方移动到另一个地方,然后我对它采取行动 有朋友能告诉我解决这个问题的主要问题是什么吗?模拟器是模拟器而不是模拟器。模拟器真正做的只是提供一个运行iOS应用程序的窗口。您会注意到,当您为模拟器构建时,系统架构设置为i386。当您使用模拟器时,您正在为Mac进行编译。没有内

有没有想过为什么这段代码在iphone的模拟器上运行得慢而在iphone上运行得快,我在cocos2d中制作一个游戏,通过CCtouchBegind、CCTouchMoved、CCtouchEned(ccp函数)将一个对象从一个地方移动到另一个地方,然后我对它采取行动

有朋友能告诉我解决这个问题的主要问题是什么吗?

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

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


快乐编码

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

可能有很多原因,比如模拟器和实际设备

  • 在实际设备中,内存不足可能是第一个问题,因为您将安装不同类型的大型应用程序,但在模拟器的情况下,您不会安装t
  • 低功耗问题,因为实际设备将由电池供电,而不像模拟器那样始终获得恒定功率
  • 其他应用程序会干扰您的应用程序运行周期,但在模拟器中,您在测试应用程序时几乎不会运行任何应用程序
  • 你在MAC电脑上看不到像在实际设备上那样清晰的用户界面(UI),所以看起来正确的可能实际上不正确
  • 应用程序受到调用的干扰,在模拟器中这种干扰永远不会发生

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