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

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

内容简介: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


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

查看所有标签

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

500 Lines or Less

500 Lines or Less

Amy Brown、Michael DiBernardo / 2016-6-28 / USD 35.00

This book provides you with the chance to study how 26 experienced programmers think when they are building something new. The programs you will read about in this book were all written from scratch t......一起来看看 《500 Lines or Less》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试