Angular 4 - Angular绑定多快--prod

时间:2017-09-27 12:47:35

标签: angular performance

由于我们在.Net / Angular Web应用程序中的不利软件架构,我们可能无法为生产环境执行ng build(--prod)的捆绑。

我现在的问题是,加载 SystemJS 的Angular应用程序与使用ng build --prod捆绑的同一应用程序相比,性能提升有多大?

有没有人进行过绩效衡量?

我尝试使用以下测试应用程序并在 Developer Console中读取执行时间,但这不是真正可靠的angular-realworld-example-app

" SystemJS" | "捆绑产品"
..... 1.9s ....... | .......... 1.1s
.... 2.2s ....... | .......... 1.4s
..... 1.7s ....... | .......... 1.3s
..... 2.1s ....... | .......... 1.0s
...... 1.8s ....... | .......... 1.1s
..... 1.7s ....... | .......... 1.15s

... ~1.68s ..... | ........ ~1.17s
(平均秒数)

1 个答案:

答案 0 :(得分:3)

ng build --prod创造了一个"提前到来" bundle(https://angular.io/guide/aot-compiler),这意味着角度编译器不必包含在生产包中。

正如文档中所述,在下载大小方面有性能提升:

  

编译器大约是Angular本身的一半,因此省略它会大大降低应用程序的负载。

并且应用程序启动时间也增加了:

  

更快的渲染

     

使用AOT,浏览器会下载应用程序的预编译版本。浏览器加载可执行代码,以便它可以立即呈现应用程序,而无需先等待编译应用程序。

与JIT编译的应用程序相比,实际增益取决于模板的数量及其大小。

  

更少的异步请求

     

编译器在应用程序JavaScript中内联外部HTML模板和CSS样式表,从而消除了对这些源文件的单独的ajax请求。