4.12 优化代码在运行时的效率

4.12 优化代码在运行时的效率
问题一:什么是Prepack?

Prepack 由 Facebook 开源,它采用较为激进的方法:在保持运行结果一致的情况下,改变源代码的运行逻辑,输出性能更高的 JavaScript 代码。 实际上 Prepack 就是一个部分求值器,编译代码时提前将计算结果放到编译后的代码中,而不是在代码运行时才去求值。

问题二:Prepack工作原理和流程?

通过 Babel 把 JavaScript 源码解析成抽象语法树(AST),以方便更细粒度地分析源码;
Prepack 实现了一个 JavaScript 解释器,用于执行源码。借助这个解释器 Prepack 才能掌握源码具体是如何执行的,并把执行过程中的结果返回到输出中。
问题三:Prepack局限性?

不能识别 DOM API 和 部分 Node.js API,如果源码中有调用依赖运行环境的 API 就会导致 Prepack 报错;
存在优化后的代码性能反而更低的情况;
存在优化后的代码文件尺寸大大增加的情况。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 10,792评论 2 35
  • 部分的商用虚拟机中,Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会...
    胡二囧阅读 4,306评论 0 1
  • 一年来在各位家长的支持配合下,学校取得了很大成绩,教育教学管理和教育创新更上一个台阶,今年我校被评为潍坊市家庭教...
    长跑人阅读 4,196评论 1 12
  • 往下看, 都在图里了!
    大悦儿儿阅读 1,826评论 4 6