2016-08-05 20 views
5

Cudowni programiści, potrzebuję pomocy w wyjaśnieniu, dlaczego Angular 2 jest bardziej wydajny niż Angular 1?Dlaczego Angular 2 ma lepszą wydajność niż Angular 1?

Po poszukiwaniach w internecie, wymyśliłem tego właściwego wyjaśnienia od Er Shahbaz Sharif in a Quora discussion:

Angular 2 is using Hierarchical Dependency Injection system which is major performance booster. 
Angular 2 implements unidirectional tree based change detection which again increases performance . 
As per ng-conf meetup, angular 2 is 5 times faster as compared to angular 1 

Inne wyjaśnienia w tej samej dyskusji wydaje się oscylować wokół tego, jak dobrze.

Czy ktoś mógłby mi wyjaśnić, dlaczego te 2 czynniki (i inne, jeśli takie istnieją) pomagają zwiększyć wydajność Angular 2? Wielkie dzięki ..

Odpowiedz

2

Angular2 - nie wykonuje głębokiego obiektu compairson. Jeśli elementy zostaną dodane/usunięte do/z tablicy, zmiana wykrywania nie wykryje tego. To samo dotyczy właściwości obiektu, o ile nie są one bezpośrednio związane z widokiem.

  • Dwukierunkowe wiązanie jest dzielone na propagowanie wykrytych zmian z katalogu głównego na liście.

  • Zmiany z potomka na rodzica są propagowane tylko przez jawne zdarzenia (wyjścia), tylko w przypadku rodziców bezpośrednich.

  • ChangeDetectionStrategy.OnPush nie uruchamia wykrywania zmian dla komponentów, gdy żadne wartości wejściowe nie uległy zmianie. To przycina poddrzewa komponentów, w których wykrywanie zmian w ogóle nie jest uruchamiane.

  • Kod (szczególnie kod wykrywania zmian) jest napisany w taki sposób, aby mógł być zoptymalizowany w maksymalnym stopniu przez maszyny wirtualne JS.

https://www.quora.com/What-is-the-difference-between-angularjs-and-angular2

1

Jednym z powodów, dla wydajności jest możliwość istnienia pętli detekcyjnych zmiana.

  • Angular1 hamował swoją wydajność dzięki temu, jak badał stan. Podczas każdego cyklu podsumowywania struktura sprawdza, czy zmieniła się wartość setek lub tysięcy wartości w aplikacji.
  • Angular 2 umożliwi programistom dostarczenie pewnych gwarancji mechanizmowi wykrywania zmian, aby uniknąć skanowania części drzewa komponentów. Aby uzyskać więcej informacji, można znaleźć więcej na here.