Closed hugoj-goncalves closed 3 years ago
Setting βAOTβ to false means that the view engine compiler isnβt being used at build time; only the typescript compiler.
Can you provide timings with AOT enabled for both VE and Ivy?
Setting βAOTβ to false means that the view engine compiler isnβt being used at build time; only the typescript compiler.
Can you provide timings with AOT enabled for both VE and Ivy?
oh... didn't know about that with aot enabled looks like I have similar results to IVY, ~120secs compile incremental build looks worse tough: like 30sec with IVY and 90secs on view engine
setting aot: false with IVY enabled tough doesn't help much, build time still looks almost the double
is it common sense that ivy:false and aot:false is faster at build time or I have some problem within my project?
is it common sense that ivy:false and aot:false is faster at build time or I have some problem within my project?
Considering the large number of dependencies I suspect that is the overhead of NGCC. Iβll try to take a look at the profiler events next week.
Looks like Ivy AOT initial builds are ~10% faster than ViewEngine AOT initial builds which is good.
For non-AOT (JIT mode), the difference may also be partly due to the deprecated string-form analysis for lazy routing. This analysis step has been completely removed in the upcoming v12 (currently in prerelease) as support for the string-form as been removed. However, there may be some opportunities to improve the performance in v11.
If you have some time, as an experiment, could you try with the v12 prerelease?
ng update @angular/cli @angular/core --next
Wow... that's some amazing results with:
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ β³ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 12.0.0-next.5
Node: 12.21.0
OS: win32 x64
Angular: 12.0.0-next.5
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router, service-worker
Ivy Workspace: No
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1200.0-next.5
@angular-devkit/build-angular 0.1200.0-next.5
@angular-devkit/core 12.0.0-next.5
@angular-devkit/schematics 12.0.0-next.5
@schematics/angular 12.0.0-next.5
@schematics/update 0.1200.0-next.5
ng-packagr 12.0.0-next.5
rxjs 6.6.6
typescript 4.2.3
is there any ETA for v12 ;s? is it production ready?
The target date for version 12 release May 2012. While you can use version 12 for production it's still not deemed as stable.
@clydin, has a PR in flight to reduce resource processing during JIT https://github.com/angular/angular-cli/pull/20339
@hugoj-goncalves If you have some additional time, can you check JIT mode with the latest version of the CLI (11.2.6
)? Running ng update @angular/cli @angular/core
should update the project to the latest stable versions.
@hugoj-goncalves If you have some additional time, can you check JIT mode with the latest version of the CLI (
11.2.6
)? Runningng update @angular/cli @angular/core
should update the project to the latest stable versions.
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ β³ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 11.2.6
Node: 12.21.0
OS: win32 x64
Angular: 11.2.7
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router, service-worker
Ivy Workspace: No
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1102.6
@angular-devkit/build-angular 0.1102.6
@angular-devkit/core 11.2.6
@angular-devkit/schematics 11.2.6
@angular/cli 11.2.6
@schematics/angular 11.2.6
@schematics/update 0.1102.6
ng-packagr 11.2.4
rxjs 6.6.6
typescript 4.0.7
Edit: This is simply wrong, this batch of tests I ran using ng serve -c=localLibs (So I basically built the project referencing our internal libs locally instead of the ones published into the node_modules)
@clydin Whopsi... previous results were simply not using the same "command" ;/ My bad... I'll just put 11.2.5 and 11.2.6 together to be easier to compare
11.2.5 11.2.6
so it actually did help a little bit I guess... v12 is just insane tough ;s
The 12.0 version has been released and is now stable. If any performance issues are encountered after upgrading, please let the team know by opening a new issue with updated version information.
This issue has been automatically locked due to inactivity. Please file a new issue if you are encountering a similar or related problem.
Read more about our automatic conversation locking policy.
This action has been performed automatically by a bot.
π Bug report
Command (mark with an
x
)Is this a regression?
Haven't tried on earlier versions.
Description
Compile time on view engine is just way faster than with IVY enabled o.O ## π¬ Minimal Reproductionjust a simple ng serve
build time goes from ~40sec to ~60sec on view engine to ~100sec to ~130sec on IVY
incremental build time also goes up with quite a margin
the only changes I made was in tsconfig.json to set "enableIvy": false and angular.json to set aot: false when building view engine I used the NG_BUILD_PROFILING env var to get some data, but I'm not really sure how to "read" it
π Your Environment
Anything else relevant?
It's a private project with some private libs, so I can't really share the code ;/ it has a good amount of dependencies
speed-measure-plugin-view-engine.json chrome-profiler-events-view-engine.json
speed-measure-plugin-ivy.json chrome-profiler-events-ivy.json