最近我们听到一些关于移动HTML性能的一些秘籍,实际上它们并不是很准确。和好的“城市秘籍”一样,它们听起来令人信服的和可信。但是这些秘籍是基于,不正确的前提和对本地和网络软件栈之间关系的误解,以及曲解数据的散点。 我们认为重要的是,要对这些秘籍进行验证,使用用我们已经收集了多年来关于性能的数据和我们自己的做的移动 Web 应用程序性能的经验。 秘籍1:移动网络性能主要是由运行在CPU上的JavaScript性能决定 现实:大多数网络性能是由渲染管线的优化程度,GPU加速程度,DOM交互速度三者制约。更快的JavaScript总是有用的,但它很少是决定因素。 秘籍2:因为硬件不停的升级,CPU越快,JavaScirpt执行的也会越快(又称摩尔定律)
事实上:在过去四年间,移动设备上的JavaScript的渲染提速都是通过软件的优化来实现的,而不是通过硬体的加速。尽管单线程渲染JavaScript的速度有所提升,但是大多数网络程序还是尽可能采用多线程来提升JavaScript整体性能。 秘籍3:移动设备浏览器已经优化的相当好了,没有多少提升的空间了
事实上:每一个移动设备浏览器都有自己的优势,有时甚至会超过对手10-40倍。Surface在SVG方面比iPhone好30倍。iPhone在DOM交互方面胜过Surface10倍。看来,和对手优点比较后还是有明显提升空间的。 秘籍4: 未来的硬件提升不太可能转变为web app的性能增益
现实:过去三年中每一代硬件都带来了显著的JavaScript性能提升。手机上的单线程性能将会持续改进,浏览器开发人员也将会提升软件平台,通过减轻负载与多线程,充分利用增强的GPU速度,更快的内存总线 与多核。许多浏览器已经能利用并行的优势,以减轻主UI线程的负载,例如:Firefox 分离合成工作; Chrome 分离一些 HTML 解析; 以及 IE 分离 JavaScript JIT编译。 |