Abbiamo compreso come il Change Detection opera e funziona in Angular 2 in un precedente articolo, ora andiamo ad analizzare come questo comportamento impatta sulle performance della nostra Web Application.
Performance in Change Detection
Sebbene, di default, il codice deve verificare ogni singolo componente ogni volta che accade un evento, il framework Angular 2 è molto veloce: può raggiungere le centinaia di migliaia di operazioni in pochi millisecondi. Questo avviene perchè Angular genera codice ottimizzato per le VM.
In particolare Angular crea le classi di change detector in runtime per ogni componente, che, per dirlo in un linguaggio strettamente da programmatore, sono monomorfe perchè già conoscono esattamente la forma del modello della loro componente. Le VM posso ottimizzare perfettamente questo tipo di codice e così facendo lo rendono rapidissimo da eseguire.
Un vantaggio importante di questo aspetto è che non abbiamo bisogno di prenderlo in considerazione nello sviluppo: Angular lavora autonomamente senza alcun nostro intervento.
Change Detection intelligente
Ritorniamo sul Change Detection e cerchiamo di dare una risposta alla domanda “Perchè non diciamo ad Angular di eseguire il change detection solo per le parti di applicazione che cambiano il loro stato invece di eseguirlo continuamente?”
Bene, si può fare. In Angular esistono delle strutture di dati che si permettono di conoscere quando qualcosa cambia o no : Immutabili ( Immutables ) e Osservabili (Observables ). Quando usiamo queste tipologie di strutture la change detection può essere molto più rapida. Ne scopriremo i dettagli in un prossimo articolo.
Contattaci per seguire un Corso su Angular 2 o ricevere Assistenza e Supporto Tecnico.