官方传播鼓吹Prepack是一个优化JavaScript源代码的对象,实际上它是一个JavaScript的部分求值器(Partial Evaluator),可在编译时履行本来在运行时的计算过程,并经由过程重写JavaScript代率攀来进步其履行效力。Prepack用简单的赋值序列来等效调换JavaScript代码包中的全局代码,大年夜而清除亮闼殇计算过程以及对象分派的操作。对于重初始化的代码,Prepack可以有效缓存JavaScript解析的结不雅,优化效不雅最佳。

官方供给的Prepack优化示例:
中期
- 进一步优化序列化(Serialization),包含:清除不裸露特点(identity)的对象;清除未应用的导出属性,等等
- 预优化每个函数、根本代码块、语句、表达式
- 与ES6保持完全一致
- 支撑广泛的模块体系
- 假设ES6支撑某些功能,延迟完成或直接忽视Polyfill应用
- 进一步实现Web和Node.js情况中的兼容性目标
- 深刻集成JavaScript虚拟机,改进堆反序列化过程,包含 :裸露“对象懒初始化”的概念 - 以一种JavaScript无感知的方法,在初次应用对象时对其进行初始化;经由过程专门的字节码进步通俗对象创建的编码效力;将代码分为两个阶段:1) 非情况依附阶段,虚拟机可以安然地捕获并恢复生成的堆;2)情况依附阶段,经由过程大年夜情况中获得的值履行所有残剩的计算过程来拼凑具体的堆,等等
- 总结轮回和递归
- /* Hello World */// Input(function () {
- function hello() { return 'hello'; }
- function world() { return 'world'; }
- global.s = hello() + ' ' + world();
- })();// Output(function () {
- s = "hello world";
- })();
Prepack团队对将来的筹划如下:
今朝Prepack仍处于早期开辟阶段,尚未预备好在临盆情况中应用,官方建经过议定测验测验应用,并迎接供给反馈以赞助修复缺点。
短期
- 稳定现有功能集,用于预优化(Prepack)React Native代码包
- 集成React Native对象链
- 根据React Native所用模块体系的假设来构建优化
经久 - 应用Prepack作为一个平台
- JavaScript Playground - 经由过程调剂JavaScript引擎体验JavaScript特点,这些引擎由JavaScript所编写,托管在浏览器中;你可以把它想象成一个“Babel虚拟机”,实现了不克不及被编译的JavaScript新特点
- 捉Bug - 发明异常崩溃、履行问题……
- 效不雅分析,例如检测模块工厂函数可能的副感化或强迫纯净注释
- 类型分析
- 信息流分析
- 调用图推理,许可内联和代码索引
- 主动测试生成,应用符号履行的特点与束缚求解器(Constraint Solver)结合来计算履行不合履行路径的输入
- 智能模糊(Smart Fuzzing)
- JavaScript沙盒 - 以弗结不雅察的方法有效地测试JavaScript代码
【编辑推荐】
- 大年夜JavaScript到TypeScript - 模块化和构建
- 2017值得一瞥的JavaScript相干技巧趋势
- 深刻懂得JavaScript缺点和客栈追踪
- 若何用JavaScript实现一个数组惰性求值库
- 基于Python和JavaScript编写物联网温度计法度榜样
推荐阅读
比来听一个开淘宝商号的同伙在抱怨,说打印机在打印网页的时刻,老是出现右边打印不全,为了可以或许有好的打印效不雅,他可以说是想了很多办法,比如说换到PS软件琅绫擎进行打印,当瘸就>>>详细阅读
本文标题:Prepack——JavaScript代码优化工具
地址:http://www.17bianji.com/lsqh/35055.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示