HTML templates are the primary building blocks of an angular application, and among its components are numerous TypeScript files. Unit testing and configuration files are present. The browser cannot immediately read the code when we run over an application, so we must compile our code.
What is Ahead of Time (AOT) compiler ?
every technology Ahead of Time is a system-dependent method for converting higher-level or intermediate language into native machine code.
To put it simply, the Ahead of Time compiler transforms your code during the development time of your angular application before your browser downloads and executes it. Beginning with Angular 9, the compilation option is set to true by default for the ahead of time compiler.
The Ahead of Time compiler: Why Use It?
When you build your project using the Ahead of Time Compiler, compilation only occurs once . Every time we add a new component, we don’t have to ship the Angular compiler and HTML templates. It might make your application smaller in size.
The browser can render an application immediately without waiting for the code to be compiled, which results in faster component rendering because the browser does not need to compile the code at run time. The compiler that runs ahead of time finds template errors earlier. Before users can see them, it finds and reports template binding issues during the build process.
The workings of Ahead of Time :
Our Angular project is developed using Typescript, HTML, and stylesheets. Our source code is then packaged into bundles that contain JS files, index.html, stylesheets, and assets files using ng build -prod or ng build.
Now, Angular builds source code using the angular compiler (whatever one you chose), and they do so in three stages: code analysis, code generation, and template type checking. The final bundle size will be considerably less than the bundle size produced by the JIT compiler.
After that, AOT creates a war file for direct deployment through Heroku, JBoss, or any other Node-compatible hosting. Then, using a CNAME, we bind this host to the domain.
How to use an advance compiler to compile your app: You don’t need to do anything to compile your app in advance because this is the default setting starting with Angular 9. Simply tack on -AoT at the end of ng serve -aot.
Just in Time (JIT) compiler :
The just-in-time compiler offers compilation during runtime, just before programme execution. Simply said, code gets compiled when required rather than at build time.
Just In Time Compiler: When and Why Should You Use It?
Each file is individually compiled by the just-in-time compiler, which is primarily done in the browser. After making code changes, you don’t need to rebuild your project.
It will take less time to compile because the majority of the work is done on the browser side.
Use the Just in time compiler if you have a large project or a circumstance where certain of your components aren’t used frequently. When your application is being developed locally, a just in time compiler works well.
Just in Time Compiler: How Does It Work?
Initially, a high-level language was translated into machine language by a compiler before being translated again into executable code. In other words, a just-in-time compiler will create code when a component is called rather than parsing bytes at build time.
Not all of the code gets compiled initially in the case of just in time. The compilation process will only include the components that are absolutely essential for your application to run. If the functionality required by your project is not already in compiled code, it will be compiled. By using this method, you may make your app render more quickly and lessen the load on the CPU. Because Just in Time generates your code using JIT mode and a map file, there is one more intriguing feature that allows you to view and connect to your source code in inspect mode.
Just in Time (JIT) and Ahead of Time (AOT) comparison :
|Before displaying the code in the browser, JIT precisely compiles the code after downloading the compiler.||It is not necessary for AOT to compile the code at runtime because it did so when your programme was being built.|
|Due to the necessity to build your programme at runtime, JIT loading takes longer than AOT loading.||AOT loads significantly more quickly than the JIT since it has previously built your code at build time.|
|JIT works better in development mode.||In the case of production mode, AOT is quite suited.|
|Bundle size is larger than AOT.||AOT optimises for bundle size, with the consequence that AOT bundle size is half that of JIT bundles.|
|With this following command, you may run your application in JIT:
ng build OR ng serve
|You must add -aot to your app’s end in order to launch it in AOT, for example:
ng build --aot OR ng serve --aot
|At the moment of display, template binding errors might be detected.||When creating your application, you can capture the template mistake.|