【问题标题】:Speed of program in iPhone simulatoriPhone模拟器中的程序速度
【发布时间】:2011-04-22 21:33:43
【问题描述】:

程序在模拟器中运行的速度与真正的 iPhone 或 Ipod touch 相比如何?是快还是慢?

【问题讨论】:

  • 用 Google 2 分钟就能告诉你答案……
  • 我在 Google 上找到了不同的答案。答案是什么?
  • 谷歌把我带到了这里。因此,现在这是获得答案的最终位置。

标签: objective-c cocoa-touch ios-simulator ios4 ipod-touch


【解决方案1】:

iPhone 模拟器是模拟器。它不模拟真实的硬件,只是模仿它的行为。事实上,为模拟器编译的应用程序只是直接在 Mac OS X 机器上执行的 x86 二进制文件。因此它充分利用了开发机器的所有处理能力和网络带宽。

您可以假设您正在运行常规的 Mac OS X 应用程序。事实上,确实如此。这就是为什么我们不能在 iOS 模拟器中运行 iOS 应用程序的答案。您需要为 x86 编译的二进制文件。但是,使用这种方法,您无法在真实设备上获得完全相同的行为。

基本的 UIKit 图形非常快,因为它是在硬件加速的 OS X 的 Quartz 之上模拟的,但 OpenGL ES 上下文是一个例外。它真的很慢。即使它是一个模拟器,模拟器模拟 OpenGL ES 与软件渲染器以显示正确的结果。它不使用硬件加速。


Android 模拟器是一个模拟器。它本质上是一个模拟所有目标机器行为的虚拟机,因此它比 iPhone 模拟器慢得多。但它可以与真实设备完全相同。您甚至可以直接在 Android 模拟器上从 Android Market 运行 Android 应用。

但是有一些问题。 Android 硬件有很多,但模拟器只模拟其中的一部分。谷歌的实现。当然,如果您的设备有自己的特殊模块,则无法对其进行仿真。可以使用每个硬件供应商提供的某种仿真器插件,但据我所知,几乎没有供应商提供它。


所以,iPhone 模拟器总是比真实设备快很多。 Android 模拟器从未比真实设备快,即使它比初始版本快很多。

【讨论】:

    【解决方案2】:

    iPhone 模拟器(完全?)利用计算机资源,因此它比真实设备运行得更快。

    这可能意味着您需要始终在真实设备上进行应用测试,以充分了解应用性能。

    【讨论】:

    • 我也是这么想的,但是我听说有人抱怨它在模拟器中跑得慢。
    • 从未见过。虽然我听说 winmobile 和 android 模拟器都是如此。
    • 正如 Eonil 提到的,OpenGL 是在 iOS 模拟器中的软件中运行的,它非常慢。
    猜你喜欢
    • 2010-12-16
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2011-05-07
    • 2017-08-08
    • 2017-03-25
    • 2016-05-25
    • 2011-03-20
    相关资源
    最近更新 更多