Arquitetura subjacente da API de detecção de alterações no Angular

Eu estava analisando este artigo e estava confuso sobre como a ação de detecção de alterações funciona.https://vsavkin.com/change-detection-in-angular-2-4f216b855d4c

O conceito:

Angular diz que não faz checagem suja e não há duas ligações, além de assistir como no AngularJS 1.X. No entanto, o que eu entendo no Documentos Google e em poucos blogs + pilhas é que há um detector de alterações anexado a cada componente.

No entanto, desta pilha transborda com a resposta de @ Gunter aqui:Entendendo a detecção de alterações em angular 2

Com ChangeDetectionStrategy.OnPush, a Angular executa a detecção de alterações, quando em @Input () foi atualizado, um evento DOM que Angular escuta foi recebido ou o canal assíncrono (| async) recebeu um novo valor.

Eu entendo que ele tem um ouvinte que escuta todas as alterações angulares. Segundo, se eu usar o runOutsideAngular, ele não criará um objeto detector de alterações nesse componente ou ação?

Outros casos são se você explicitamente (this.zone.runOutsideAngular ()) ou por algum outro motivo, o código executado fora da zona Angulars modifica o status do componente, isso também não será coberto (mesmo quando o código for um manipulador de eventos).

Pequenas sub-perguntas do ciclo de vida do detector de alterações:

Questão 1:Existe um observador ou um ouvinte de eventos?

Questão 2:Isso significa que existe um objeto detector de alterações ativo para cada componente, independentemente de usarmos changeDetectorStartegy.onPush ou .Default?

Questão 3:Qual é o impacto desses objetos detectores de alterações em cada implementação de componente se eu tiver 1000 objetos no aplicativo Angular? Especialmente para o perfil de memória do aplicativo

Pergunta 4:Como gerenciá-lo para que não afete o perfil de memória do aplicativo no navegador

Pergunta 5:Existe um local / recurso onde eu possa obter o ciclo de vida do detector de alterações e do ngZone associado?

Atualização: solicite a alguém que, em vez de marcar esta pergunta de perto, recomendo responder a uma pergunta séria. Agradeço sua ajuda no entendimento dos conceitos de trabalho subjacentes.

questionAnswers(1)

yourAnswerToTheQuestion