是否有可能使iOS模拟器更像真正的iPhone?

时间:2011-11-29 02:20:11

标签: iphone ios ipad ios-simulator

Apple的iOS模拟器很棒 - 我一直都在使用它,因为它比在真实设备上运行容易得多。但它有一些缺点,其中之一就是它太强大,功能强大。因为它可以访问计算机的资源,所以我经常发现在iOS模拟器上运行良好(平滑)的代码并不总是在真实设备上运行,在这种情况下,我的iPhone 4。

这个问题的标题说明了一切,但我会再说一遍:是否有可能让iOS模拟器像真正的iOS设备一样表现?

4 个答案:

答案 0 :(得分:4)

您可以使用'nice'或'renice'命令来更改模拟器的调度优先级,但除非是同时运行其他一些更高优先级的任务,否则它可能无济于事。 / p>

就个人而言,我认为你最好花时间在设备上运行。这真的不是那么困难,你最终会更好地了解你的应用程序的真实性能。

答案 1 :(得分:1)

将它放在应用中的一些地方,您可以利用大量的内存空间。这会生成内存警告并导致iOS释放视图,否则会尝试释放内存。您可以同时找到所有viewDidUnload错误; - )

#if TARGET_IPHONE_SIMULATOR
    SEL memoryWarningSel = @selector(_performMemoryWarning);
    if ([[UIApplication sharedApplication] respondsToSelector:memoryWarningSel]) {
        NSLog(@"simulated memory warning");
        [[UIApplication sharedApplication] performSelector:memoryWarningSel];
    }
#endif

也许在这里和那里添加一些延迟以获得良好的衡量标准,但你必须决定延迟的地点和数量。这是一个100毫秒的延迟:

#if TARGET_IPHONE_SIMULATOR
{ 
    const struct timespec delay = { 0, 100000000 }; 
    nanosleep(&delay, NULL);
}
#endif

答案 2 :(得分:1)

您必须在实际设备和模拟器上对特定应用程序进行基准测试,因为差异因您的应用程序而异。

假设模拟器的代码速度提高了20倍。您可以尝试在应用程序委托中创建重复的NSTimer,并在计时器回调中每隔0.05秒对主线程进行47.5毫秒(或其他间隔和比率),并查看是否会将模拟应用程序降低到大约速度您设备上的应用。您可能需要尝试反复试验以获得适当数量的“泥浆”,以便在您的应用中使用。

在计时器回调中,您还可以监控应用程序进程的VM脏空间,并在应用程序扩展一定数量时终止它。

答案 3 :(得分:0)

不,这就是Apple如何销售开发许可证。

您可以使用某种实用程序来限制CPU和RAM以限制它,但这是最好的猜测。