Apple的iOS模拟器很棒 - 我一直都在使用它,因为它比在真实设备上运行容易得多。但它有一些缺点,其中之一就是它太强大,功能强大。因为它可以访问计算机的资源,所以我经常发现在iOS模拟器上运行良好(平滑)的代码并不总是在真实设备上运行,在这种情况下,我的iPhone 4。
这个问题的标题说明了一切,但我会再说一遍:是否有可能让iOS模拟器像真正的iOS设备一样表现?
答案 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以限制它,但这是最好的猜测。