Polaris是一款新颖的JavaScript框架,可以帮助网页加载时间平均减少34%。这款框架是由麻省理工学院(MIT)计算机科学与人工智能实验室(CSAIL)与哈佛大学的研究人员共同开发, Polaris可帮助减少网络往返中产生的延时。
根据会在下一期USENIX组织的NSDI研讨会上发表的论文,MIT的博士生Ravi Netravali以及其他人基于两个工具解释了这个新方法:
相依性分析是被普遍使用在浏览器加载资源方法优化的技术。根据Netravali所说,在Scout之前,这种分析是基于HTML标签之间的语意关系完成的,但是它缺失了许多细粒度相依性,我们在下图中可以看到一个实例。
从另一方面来说,Scout正在努力发掘HTML层面的相依性,JavaScript文件之间的相依性以及JavaScript和DOM元素间的相依性。
Scout通过提供细粒度相依图,使浏览器能更好地安排资源加载,Polaris JavaScript调度器的作用就显现了出来。Polaris可以在普通的浏览器上正常运行,也可以根据页面的Scout图计算动态的临界荷载路径,其服务器能够与它所提供服务的HTML页面和Polaris自身相关联。从定义上来说,动态的临界荷载路径是当前拥有最多未解决对象的路径,与静态加载路径不同,它由Scout提供并受到顺序和以及网络读取完毕延迟的影响。
Polaris根据动态的临界荷载路径划分了读取和评估对象的先后顺序,它致力于平行利用客户端CPU及网络,并保持客户端网络通道都在使用,给浏览器限制最大网络同时请求数目。
Polaris项目的研究人员在不同的网络环境下测试了他们的系统,“从25ms到500ms的延迟,从1Mbps到25Mbps的带宽”,以及在200个大众网站上进行了测试。他们认为,这表明了在平均情况下,减少的时间多达34%,而在95%的情况下,时间的减少可以达到50%。性能随着网站的改变而改变,复杂的页面会较高,而大量运用缓存的页面则会较低。
查看英文原文: MIT's Polaris Touts Making Web Pages 34 Percent Faster
感谢张龙对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 (已满),InfoQ读者交流群(#2) )。