Angular + Webpack的缓慢构建性能:TypeChecker.gatherDiagnostics.ng.getTsSemanticDiagnostics

时间:2019-10-11 15:28:42

标签: angular performance webpack

我有一个不使用CLI的Angular 8 + Webpack 4应用程序,构建时间非常长(大约150秒)。我发现某个地方(我不记得在哪里)存在一个非正式的标志来打开一些基准测试指标:@ngtools/webpack/src/benchmark.js

打开此标志将提供有关我的构建时间的一些更详细的指标(从头开始的构建和增量构建的数字类似):

AngularCompilerPlugin._createOrUpdateProgram.ng.createProgram: 0.845ms
TypeChecker._update: 0.805ms
TypeChecker._createOrUpdateProgram.ng.createProgram: 0.073ms
AngularCompilerPlugin._createOrUpdateProgram.ng.loadNgStructureAsync: 2270.816ms
AngularCompilerPlugin._emit.ng.getNgStructuralDiagnostics: 0.005ms
TypeChecker.gatherDiagnostics.ng.getTsSyntacticDiagnostics: 2808.133ms
TypeChecker.gatherDiagnostics.ng.getTsSemanticDiagnostics: 50618.766ms // <- This is very long
TypeChecker.gatherDiagnostics.ng.getNgSemanticDiagnostics: 46.749ms
TypeChecker.message: 53474.933ms
AngularCompilerPlugin._emit.ng.emit: 140105.957ms
AngularCompilerPlugin._emit: 140106.072ms
AngularCompilerPlugin._update._emit: 140106.099ms
AngularCompilerPlugin._update: 142523.159ms
AngularCompilerPlugin._make: 142523.670ms

我真的很想了解更多有关这些步骤的内容,以及是否有优化它们的已知方法,尤其是TypeChecker.gatherDiagnostics.ng.getTsSemanticDiagnostics所引用的方法,这是一个明显的瓶颈。

谢谢!

0 个答案:

没有答案