泡泡网平板电脑频道 PCPOP首页      /      平板电脑     /      新闻    /    正文

iOS 4.3被指故意降低传统Web应用速度

    泡泡网平板电脑频道3月19日 国外著名科技调查网站TheRegister日前爆出独家新闻,称他们发现苹果的iOS移动操作系统在运行从主屏幕启动的Web应用程序的时候(全屏),速度明显比直接从Safari中运行要慢很多。而苹果可能是故意这样设计,因为这样可以让用户去App Store购买收费的原生应用程序,而不是直接将一个网页以Web应用程序的方式保存到主屏幕。

    The Regster在报道中说:在苹果的iOS移动操作系统中,从主屏幕以全屏模式运行Web应用程序的速度相对于从 Safari 浏览器中运行速度明显慢很多,也就是说在这期间内,操作系统可能通过另一种方式阻碍了这些Web应用程序的性能,这一现象已经被多名开发者和The Register的测试证实。

123

    目前还不清楚这个现象到底是一个意外的Bug还是苹果公司有意识的故意这样设计,但最终反映出来的结果确实如此。至少从某些角度来说,苹果可能确实会故意让传统的Web应用程序难以替代从App Store中分发的原生应用程序,通过App Store分发的原生应用程序不仅仅可以给苹果带来30%的销售分成,而且这些应用只能在苹果的操作系统上运行,但是传统的Web应用程序就不一样了,因为他们构建于如HTML、CSS以及JavaScript等标准的Web技术之上,所以有可能在任何设备上运行。

    一名不愿意透露姓名的移动Web应用开发者说道:苹果基本上是采用了一种巧妙的缺陷让Web应用程序运行效率低下,尽管他们宣称完全支持HTML5。

    虽然 The Register 已经多次请求苹果解释这一现象,但到目前为止苹果公司还没有给出任何回应。

    根据多个测试结果显示,如果从iOS 4.3的主屏幕全屏运行Web应用程序(可以理解成将网页以Web应用程序的方式保存到主屏幕的应用程序),相比直接在 Safari 中运行大约要慢2-2.5倍。这就体现出虽然苹果虽然在iOS 4.3的Safari中加入了高速的Nitro JavaScript引擎,但这一引擎并没有被应用到从主屏幕启动的Web应用程序之上。

    “事实上,这两种方式调用的是完全两个不同的JavaScript引擎,苹果压根就没有将新的JavaScript引擎应用到从主屏幕启动的Web应用程序上”移动应用程序开发者 Alex Kessinger指出,同时他的博客一直都在关注给iPhone建立基于Web标准的应用程序。

123

    而且,这些在主屏幕上的Web应用程序还不能使用大量的Web缓存系统,包括HTML5应用程序缓存,这就意味着这些应用不能被缓存以在离线状态下运行。同时,这些应用还不能使用苹果新的“异步模式”进行渲染,只能悲剧的使用老旧的“同步模式”,这就意味着表现会很差。

    尽管苹果公司目前还没有针对The Register的请求做出任何回应,但很显然苹果公司已经知道了这件事情。根据苹果开发者张贴到网上的一个帖子显示,关于Web应用程序速度的问题已经开始在苹果的开发者支持论坛开始讨论,而本文上面引用的那名不愿透露姓名的开发者也给 The Register 确认了这些Bug已经在苹果的开发者支持论坛提及。

    这名不愿意透露姓名的开发者表示:“我已经和苹果移动Safari团队的人聊过了,而且他们说已经知道了这些缓存问题”。

    这次提到的这三个问题其实对使用苹果的UIWebView API开发的原生应用程序也有影响。开发者 Alex Kessinger向The Register表示:UIWebView是一个可以在你的应用程序种提供Web内容的控制器,很多人写程序的时候都完全使用HTML,然后与UIWebView绑定以提交到App Store。也就是说,这种应用程序从根本上来说就是HTML,固然会受到这三个问题的影响。

    去年,苹果公司的老板乔布斯在为他们在iOS设备上抛弃Adobe Flash辩解的时候,说道了苹果公司相信开放的Web标准。“我们始终坚信与Web有关的一切标准都应该是开放的,所以苹果公司会使用 HTML5、CSS 和 JavaScript,而不是 Flash”。这句话是乔布斯在一封名为“关于Flash的一点思考”公开信中写到的。

    “苹果的移动设备都表现出低功耗与高性能的优势。HTML5是最新的网络标准,已经为苹果、谷歌等许多公司所采用,它允许开发者开发出更为高级的图形、印刷和动画,并且不需要第三方浏览器插件(如Flash)就能转换。HTML5是完全开放的,由一个标准委员会对其进行联合管理,苹果也是其中一员。”

    根据《Programming the Mobile Web》一书的作者 Maximiliano Firtman 的测试,在iOS 4.3的Safari浏览器中运行Web应用程序大概要比直接从主屏幕以全屏模式运行程序快2倍,这一结果和前面三个开发者的所发差不多,他认为这个现象的主要原因是主屏幕的应用程序不能享受到Nitro引擎的优势。

    Firtman对The Register表示:“虽然我还不是100%确定,但已经可以99.9999%确定这个差距是因为没有采用Nitro引擎了”。他还提供了一个可以让所有用户非常简单的测试这个差距的 Junspider JavaScript 基准测试程序的版本,大家在自己的iOS设备上测试。当然 The Register 也进行了测试,结果确实是这样的。下面的两张图片就是在iOS 4.3系统下的iPhone上,分别在Safari中和从主屏幕运行的Web应用程序中测试的结果:

在 Safari中,测试结果为4047毫秒

123

如果从主屏幕以Web应用程序运行的话,测试结果为10747.3毫秒,显然要慢的多

    The Register在文章中指出:Apple其实并没有降低主屏幕上Web应用程序的速度,但是他们提升了在Safari浏览器中Web应用程序的运行速度,但给用户造成的感觉以及对苹果的影响其实和苹果故意降低主屏幕Web应用程序运行的速度是一样的。如果这是一个Bug的话,那么苹果应该尽快将其修复。

    除了从主屏幕上运行的应用程序可能没有调用到最新的Nitro引擎之外,引起这个现象的原因可能还有缓存和异步模式执行的问题,这一原因也得到了多名开发者的证实。测试的方法很简单,比如用户可以将 Pie Guy 这个游戏以Web应用程序的方式保存到主屏幕上,如果是使用的早期版本的iOS系统的话,即使在离线状态下也可以运行,而在最新的iOS 4.3中就不能运行,这显然是iOS 4.3中主屏幕上的Web应用程序没有用到HTML5的缓存技术。

    这名开发者表示移动Safari团队已经表示说这个问题不会修复了,如果真的是这样,那么基本上可见Apple是故意要造成这个差距的。不过如果Apple真的不修复这些问题的话,到时候Google又该纠苹果小辫子了。


    更新最新消息,根据9to5mac的报道,苹果公司的发言人 Trudy Miller 已经确认了这一问题,他说:

    "嵌入的Web viewer确实没有得到Safari Web性能优化的优势。"

    不过苹果并没有给出引起这个问题的原因,也没有说到底会不会解决这个问题,难道苹果真的就想这样算了?如果真是这样,那么基本可以认为苹果公司是故意这么干的了。

文章来源:The Register■<

0人已赞

关注我们

泡泡网

手机扫码关注