Sencha Touch Framework (一套用于开发基于 HTML5 和 JavaScript 的移动应用的框架)的缔造者 Sencha ,对一些关于移动平台上基于 Web 的应用的性能的“传说”发表了评论。他特别剖析(驳斥)了以下几项观点:
- 对 Web 应用来说,JavaScript 的性能是最重要的影响因子;
- JavaScript 的性能改进,只能来自于硬件升级;
- 未来的硬件升级将不会再影响(提升)Web 应用的速度;
- JavaScript 的垃圾回收机制是一个性能杀手;
- 移动浏览器已经触及优化的上限;
为了驳斥以上观点,Sencha 提供了过去数年中收集到的各种基准测试的结果。这些结果来自于在不同版本的 iOS 和 Android 环境中的基准测试,它们分别运行于不同世代的硬件设备上。
在开发 Sencha Touch 框架过程中,Sencha 从未感觉到 JavaScript 是最大的制约因素。即使移动设备的性能远逊于桌面计算机,他也并不认为 JavaScript 的性能是个核心的问题——因为移动应用往往并不是用来执行计算密集型任务的。
另一方面,过去数年中的基准测试结果,表明 JavaScript 的性能有了显著提升。在相同硬件(iPhone 3GS)上通过 SunSpider 对多个操作系统版本进行测试后,其结果表明浏览器软件的进步(从 iOS3 到 iOS6)让性能提升了四倍。这一趋势并不仅限于 iOS 平台,而是同样也出现在 Android 设备上。另外,在不同世代的硬件设备上,对相同软件进行测试的结果也同样表明,硬件的升级为性能带来了显著的提升。
除了分析 JavaScript 基准测试外,Sencha 还针对 DOM、SVG 和图形性能提供了若干洞察——在 Sencha 看来,对移动 Web 应用性能来说,这些因素比 JavaScript 自身更加重要。
对 DOM 的遍历和操作的评测,表现出了与 JavaScript 评测相同的趋势:随着软硬件的进步,DOM 操作的性能也在不断提升。硬件升级——特别是 GPU 加速——也同样为图形和 SVG 带来了性能的提升。
此外,鉴于 WindowsRT 甚至能够借助 GPU 加速,在性能上超越桌面计算机,对 iOS 和 Android 平台来说,也应该具有相似的潜力——因为浏览器制造者会持续地将操作转移到 GPU 上。
在 Sencha 看来,JavaScript 的动态本性和垃圾回收机制的开销属于通用性问题。Sencha 框架自身通过在浏览器之上引入概念层来解决这个问题——对象的创建和销毁正是在这里完成。Sencha 表示,如果没有这样一个概念层的话,用户或许会遇到性能问题。
考虑到不同操作系统平台上的浏览器,会在某些方面(例如 JavaScript、DOM 或图形)显著地优于同侪,因此没有理由相信浏览器的优化已经走到了尽头。显然,每个浏览器都仍旧拥有性能显著提升的潜力,而最终这也将为移动 Web 应用带来更好的性能。
查看英文原文: Sencha: Performance of Mobile Web Applications will Further Improve
评论