为什么iPhone应用程序如此之慢?

时间:2009-06-30 00:06:59

标签: iphone performance

我注意到的关于我尝试的每个iPhone应用程序的东西都是他们都有一些地方看起来很慢而且没有反应。这对游戏,免费应用程序,昂贵的,流行的,“专业”应用程序,甚至Apple的内置应用程序都是如此。他们似乎都有一些地方,他们花了很多秒甚至一分钟来响应屏幕触摸;陷入困境,一次显示一个旋转的沙滩球; “排队”输入,以便按下按钮仅在10秒后实际执行某些操作,就像制作不良的DVR一样;并且锁定了很长时间以至于操作系统看门狗只能杀死它们。

因为这些性能问题非常普遍,所以在我看来,必然存在一些常见的性能缺陷,一些系统问题正在为许多不同的人反复出现。我自己不是iPhone开发人员,所以我在讨论社区的意见:

iPhone上最常见的性能错误是什么?

或者, iPhone开发的哪些人为因素导致性能不佳太容易出货?

5 个答案:

答案 0 :(得分:5)

我认为表现问题是一个感知问题。 Apple已经在iPhone界面的各个方面采用了动画,从而产生了流畅,响应迅速的设备的印象。你所提到的减速似乎比它们更糟糕,因为它们从流畅的界面中脱颖而出。如果你将这些任务的总执行时间与其他移动设备上的类似应用程序进行比较,我猜想iPhone的实现仍然会出现在顶部附近。

但总有改进的余地,我希望人们去年学到的许多技巧都会带来更快,响应更快的应用程序。即使是开发工具本身也在不断发展,这应该可以更容易地诊断和处理性能瓶颈。我知道我每周都在学习新的技巧,以便从CPU,GPU或板载内存中挤出更多。

我仍然对人们对手持设备可以做什么的期望变得多快感到惊讶。我是一个名为Molecules的开源应用程序的作者,该应用程序在iPhone上进行三维分子建模。十多年前,这些类型的渲染是在专用的SGI Irix工作站上完成的。在App Store推出几周后,我开始收到人们的电子邮件,抱怨当他们试图操纵结构中有超过20,000个原子的分子时应用程序有点生涩。在很短的时间内,人们就把电话和音乐播放器等设备视为便携式电脑。

答案 1 :(得分:2)

内存管理是a bit of a beast

但我认为最大的问题是:您能在多长时间内完成以99美分的价格销售并与数万个其他应用竞争的产品,并且在瞬息万变的市场中具有未知的收入潜力?

iPhone是一款非常棒的小设备,但争夺心灵的竞争非常激烈且费用昂贵。

答案 2 :(得分:2)

如前所述,在开发中花费的利润/时间比例可以解释它。

从技术上讲,我会说你看到的滞后是在应用程序通过网络获取数据或者回家检查更新等时启动时创建的。另外,它可以通过初始化应用程序创建,例如从数据库/文件加载大量数据,加载gui组件和图像,绘图等。

与内存管理类似,这一切都可以通过设计在后台运行的操作,延迟加载等来解决,但这需要更多的时间,时间就是金钱,你不会为99C应用程序获得太多,可能会或可能不会出售一点都不。

有趣的是,在专业文章中指出很多次(没有参考...)我们不应该再关心内存和速度了,因为台式机的内存越来越快。人们往往会忘记的是,同时我们正在尝试从运行资源较少的越来越小的设备中获取更多功率。

现在,大多数网页都是为了加载大量的动画和图像而设计的,并且与某些网页不同,它们根本没有针对性能进行调整,但在台式机上做得还不错。这些网页无法在移动设备上加载。对于应用程序来说同样如此,为桌面设计一个胖胖的大框架(或gui小部件库)将使得将功能移植到时尚的移动设备上变得非常困难,无论是iphone,一些水果浆果还是什么都没有。

与生活中的其他事情一样,你得到了你付出的代价。

我的99C。

答案 3 :(得分:1)

我认为最大的问题是,如果没有在设备上实际运行应用程序,就无法确定应用程序的速度。开发人员在iPhone模拟器中执行大多数基本的应用程序测试(根据我的经验,它可以运行速度高达1000倍)。在模拟器中花费一瞬间的一些操作可能需要在手机上使用进度指示器,并且当您意识到时,需要花费很多精力来返回并添加(并且在某些情况下线程化)相关操作。正如Noshredna指出的那样,它通常是一个99c的应用程序。

iPhone的处理器也只是从根本上限制。我已经看过几个漂亮的应用程序,试图在不接受平台约束的情况下做出令人印象深刻的事情。

这是一个侧面说明,我不想启动移动平台大战,但我发现iPhone应用程序通常比Android应用程序更具响应性......

答案 4 :(得分:-2)

好吧,因为也许你删除了应用程序并再次安装,因为它发生了错误,所以它需要一段时间,我需要大约2到3天才能满载,所以请耐心等待,最终会到来。也许你的iphone没有任何更多的空间用于你的应用程序,或者你的应用程序非常繁重,尝试删除其他应用程序,以便它有空间。