Angular 2 Ahead-of-Time编译器大大增加了资源消耗

时间:2016-10-12 20:55:41

标签: performance angular typescript compilation bundling-and-minification

Angular 2写的

typescript 2应用。在决定是否在github项目上打开问题之前,我想得到您的反馈。

当我使用Ahead-of-Time编译器 - ngc - 以及rollup.js来构建我的应用时,它会消耗很多更多的CPU周期浏览器。为了测试这个:

  1. 我启动了浏览器(Firefox 49 32bit上的Windows 7 x64),
  2. 让它闲置几分钟,
  3. 在唯一的打开标签
  4. 中加载了应用
  5. 根本没有与它交互,只是使用Windows'绩效监测
  6. 此外,JS捆绑(已经缩小并树木化)比其JiT编译版本大约500KB 更大

    AoT编译捆绑+ vendor.js(由core-jsreflect-metadatazone.js组成):

    enter image description here

    加载应用程序前5秒开始的CPU和IO操作,延长1分钟(AoT):

    enter image description here

    该应用已根据directions from the docs进行了优化。我还尝试将AoT版本与SystemJS-builder捆绑在一起,并完全避免Rollup.js,但性能差异仍然存在。

    现在使用浏览器内即时编译检查相同的应用程序。模板和样式已经内联,所有JS都使用SystemJS-builder buildStatic

    捆绑到一个缩小的文件中

    JiT编译捆绑包比AoT树摇动缩小捆绑包大约500KB ligher ,即使前者包括core-jsreflect-metadatazone.js!< / p>

    enter image description here

    在加载应用程序前5秒开始的CPU和IO操作,延长1分钟(JiT):

    enter image description here

    我对这些结果感到震惊,我现在已经进行了十几次测试。 AoT加载速度更快,但这种功耗使其成为非启动器。任何人都可以复制这个吗?如果没有,我如何才能找到我的应用程序发生的原因?

    Firefox 49 32bitAngular 2.0.1compiler-cli 0.6.3node 4.5.0Windows 7 x64

0 个答案:

没有答案