Explain the improvements of Tree-Shaking in Angular 9?
The Tree Shaking function can be performed in both Renderer2 and the Ivy. In some cases where we have an imported function hidden by a false conditional, that function will also be included in the bundle, although it's never called for renderer 2.
On the other hand, Ivy breaks things down into smaller and more atomic functions. These functions make the renderer code a lot more friendly towards tree-shaking because they generate the code, which is necessary from the template you've written. As a result, you no longer ship the entire framework code; instead, only bundle pieces of the framework functionality that you use.