JavaScript编译器Prepack:旨在减少启动时间

栏目: 服务器 · 编程工具 · 发布时间: 7年前

内容简介:JavaScript编译器Prepack:旨在减少启动时间

Facebook透露了一个项目,旨在“让JavaScript运行得更快”,只要JavaScript代码是在React Native应用里进行初始化的。

这个被称为 Prepack 的工具,试图移除编译时的计算过程,特别是在代码初始化阶段所进行的计算。随着JavaScript引擎的日渐成熟,现今最大的性能问题是如何改进用户体验。在很多移动应用里,本地代码比起JavaScript代码具有与生俱来的优势,比如那些React Native应用。因此,对于React Native应用来说,减少启动时间可以显著地改进用户体验。 Nikolai Tillmann 在2016年9月份加入Facebook,专门解决这方面的问题。

项目主页上的所有示例都展示了如何进行全局处理,以便减少启动时间,避免客户端JavaScript引擎每次都要进行不必要的编译。Prepack是一个“纯净的JavaScript参考实现”,所以它只读取必要的JavaScript代码。

现在,这个项目专注于如何为React Native改进初始化性能,因为React Native应用的启动过程相对耗时。设备端的JavaScript引擎编译次数越少,性能就越好。不过,这个项目无法感知它所运行的环境。Prepack的文档里提到,“Prepack并不知道document和window是什么。事实上,在Prepack里引用这些属性时,它们会得到undefined”。

官方已经非常清楚地声明,该项目“还没有为生产做好准备”。在短时间内,主要的目标是能够把它应用于React Native应用,以及相关的 工具 链。对Web和Node.js的支持被列为“中期”目标,所以想要将该工具集成到Web应用里的开发者们需要等待一段时间。不过,虽然减小应用文件大小是Web开发者的关注点,但它并不是Prepack的目标。项目主页的底部有一段说明:

Prepack关注运行时性能,而Closure编译器更注重JavaScript代码的大小。

Tillmann写到,这个工具是否能够带来好处,完全取决于被编译的东西:

Prepack可以作为传统编译器的补充。它的长处在于,它了解JavaScript内建组件,并在编译时期使用它们对代码进行预处理。在极端情况下,整个程序可以被缩减到只剩最终的结果。为了看到实际的效果,我们需要在一个能够缓存解析的环境里使用它。在初始化阶段,我们可以看到它带来最多10倍的执行时间改进。

查看英文原文: Prepack JavaScript Compiler Aims to Reduce Startup Time


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解C++11

深入理解C++11

Michael Wong、IBM XL编译器中国开发团队 / 机械工业出版社 / 2013-6 / 69.00元

《深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。 《深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计......一起来看看 《深入理解C++11》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具