1

我有一些代码在 iPhone 4 上测试时运行缓慢。我正在考虑研究 Grand Central Despatch 并为某些任务使用后台线程。但是,我知道 iPhone 4 是单核设备。这是否意味着在此设备上使用后台线程没有任何好处?

我在 Apple 的文档中找不到太多关于这方面不同设备功能的信息,而且我对后台处理很陌生。

4

2 回答 2

7

是的,只要它运行 iOS 4 或更高版本。GCD 是一个很好的设计,因为它可以在单核机器上同样出色地使用,一直到 16 核 Mac Pro。事实上,Apple 在推出 GCD 时就强调了这一点。如果你的代码写得很好,它应该在单核 iPhone 和多核 iOS 设备上同样有效。从理论上讲,您应该看到多核设备的性能优于单核设备。

于 2012-10-22T13:55:42.747 回答
0

这一切都取决于您的代码实际上在做什么。如果您的代码的目标是只计算一件事而不停止,那么在一个核心 cpu 上使用多线程在性能方面没有任何好处。但是,如果您的某些任务正在等待网络数据、等待磁盘操作、睡眠等,那么您的其他线程可能正在使用该时间来做一些有用的事情,即使在一个核心 cpu 上也是如此。通常,如果您正在与 UI 交互,那么建议您在后台执行耗时的任务,这样您就不会阻塞用户界面,从而为最终用户提供更好的体验。

于 2012-10-22T14:11:37.243 回答