深入探讨秘籍
在多年为Sencha Touch的数据驱动的应用程序的性能优化工作中,我们可以满怀信心地说,我们很少有人被JavaScript性能优化所困扰。唯一的重大案件迄今为止是Sencha触摸布局系统,我们在发现界面切换到Flexbox后,JavaScript在Android 2. X运行过于缓慢。更多的时候,我们碰到的问题是与DOM交互,浏览器渲染引擎和垃圾事件有关。所有这些问题都是每个浏览器的架构师和开发人员创建的,与 Javascript或Javascript引擎的固有特性无关。作为一个例子,当我们与浏览器厂商在性能优化方面合作时,我们已经看到了在一个40倍的改善在浏览器一个操作(颜色属性变化操作),这个操作是我们的滚动列表实现的速度瓶颈,这只是其中的一例。 JavaScript 在IOS和android上的性能
尽管我们说JavaScript在移动设备上的性能不是那么的重要,但是我们要反驳这段始终没有得到改善的神话。以下是通过IOS的模型和版本展示出了历史四年来SunSpider在IOS的数据得分(分数越低越好)。(幸运的是,SunSpider是一个用的非常广泛的测试工具,它记录了所有的IOS版本的网络数据)。在2009年, 最初运行IOS3的IPhone 3GS有得到一个已经超过了15000的分值——是如此低的性能,与2009年的桌面浏览器有20倍的差距。
然而,如果你把Iphone 3GS升级到了IOS4,5或者6,你将会在相同的硬件设备上提升4倍的JavaScript性能。(性能提高最大的是使用Nitro引擎的IOS4 和IOS5之间)SunSpider继续在性能不断提升的SunSpider上测试,但我们任低于那些NDA。与当今的桌面浏览器相比,边缘的移动浏览器的约慢5倍——与2009年相比却有30倍的提升
想了解更多ISO软硬件方面的改进,参见去年十月AnandTech的评论。 Android平台也有类似层次的改进。在我们的实验室里,我们组建了一个过去的三年里Android平台的集合,我们认为它们代表了典型的高端配置。我们测试了四部手机:
正如你在下面看到的,这是一张过去的四年里SunSpider得分曲线,一个戏剧性的改善。从Android 2.x到Android 4.x性能有3倍的改善。 在这两种情况下,改进都比我们依据摩尔定律预测的好得多。在过去的3年里,我们期待一个4倍的提升(2倍每18个月),所以软件肯定是导致性能的改善的要因。 |