wydajność aplikacji angularowych - meet.js 27.11.2014

24
Wydajność aplikacji AngularJS Kamil Zasada 2014-11-27

Upload: pgssoftware

Post on 17-Jul-2015

175 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Wydajność aplikacji AngularJS

Kamil Zasada

2014-11-27

Page 2: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Czynniki wpływające na wydajność aplikacji internetowych?

2014-11-27 2 Wydajność aplikacji AngularJS

Page 3: Wydajność aplikacji Angularowych - meet.js 27.11.2014

1. Liczba żądań HTTP

2. Rozmiar drzewa DOM

3. Liczba i złożoność reguł CSS

4. Logika i algorytmy

5. Struktury danych

2014-11-27

Czynniki

3 Wydajność aplikacji AngularJS

Page 4: Wydajność aplikacji Angularowych - meet.js 27.11.2014

1. Liczba żądań HTTP

2. Rozmiar drzewa DOM

3. Liczba i złożoność reguł CSS

4. Logika i algorytmy - CPU

5. Struktury danych - RAM

2014-11-27

Czynniki

4 Wydajność aplikacji AngularJS

Page 5: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Anything faster than 50ms is imperceptible to humans and thus can be considered as „instant”. Miško Hevery

2014-11-27 5 Wydajność aplikacji AngularJS

Page 6: Wydajność aplikacji Angularowych - meet.js 27.11.2014

You can't really show more than about 2000 pieces of information to a human on a single page. Anything more than that is really bad UI, and humans can't process this anyway. Miško Hevery

2014-11-27 6 Wydajność aplikacji AngularJS

Page 7: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Narzędzia

2014-11-27 7 Wydajność aplikacji AngularJS

Page 8: Wydajność aplikacji Angularowych - meet.js 27.11.2014

1. Chrome DevTools • Network

• Timeline

• Profiles

2. performance.now()

3. AngularJS Batarang (Chrome Web Store)

4. ng-inspector for AngularJS (Chrome Web Store)

2014-11-27

Narzędzia

8 Wydajność aplikacji AngularJS

Page 9: Wydajność aplikacji Angularowych - meet.js 27.11.2014
Page 10: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Optymalizacja CPU

2014-11-27 10 Wydajność aplikacji AngularJS

• przyspieszanie cyklu $digest

• minimalizowanie liczby wywołań $digest

Page 11: Wydajność aplikacji Angularowych - meet.js 27.11.2014

1. Wydajne watch’e

2. Minimalizowanie liczby watch’y

$scope.$watch(watchExp, changeCallback)

2014-11-27

Przyspieszanie cyklu $digest

11 Wydajność aplikacji AngularJS

Page 12: Wydajność aplikacji Angularowych - meet.js 27.11.2014

{{ fullName | myCustomFilter }}

2014-11-27

Przyspieszanie cyklu $digest

12 Wydajność aplikacji AngularJS

Page 13: Wydajność aplikacji Angularowych - meet.js 27.11.2014

<h1>{{ title | translate }}</h1>

<h1 translate>{{ title }}</h1>

2014-11-27

Przyspieszanie cyklu $digest

13 Wydajność aplikacji AngularJS

Page 14: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Angular 1.3

{{ ::value }}

Angular 1.2 https://github.com/Pasvaz/bindonce

https://github.com/kseamon/fast-bind

2014-11-27

Przyspieszanie cyklu $digest

14 Wydajność aplikacji AngularJS

Page 15: Wydajność aplikacji Angularowych - meet.js 27.11.2014
Page 16: Wydajność aplikacji Angularowych - meet.js 27.11.2014

ng-show / ng-hide

ng-if / ng-switch

.directive()

2014-11-27

Przyspieszanie cyklu $digest

16 Wydajność aplikacji AngularJS

Page 17: Wydajność aplikacji Angularowych - meet.js 27.11.2014

$scope.$apply() == $rootScope.$digest()

$scope.$digest()

2014-11-27

Minimalizowanie liczby $digest

17 Wydajność aplikacji AngularJS

Page 18: Wydajność aplikacji Angularowych - meet.js 27.11.2014

2014-11-27

Minimalizowanie liczby $digest

18 Wydajność aplikacji AngularJS

1. $scope.$digest()

2. _.debounce()

3. < XHR

4. $timeout(…, …, false)

Page 19: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Optymalizacja RAM

2014-11-27 19 Wydajność aplikacji AngularJS

• minimalizowanie złożoności modeli

Page 20: Wydajność aplikacji Angularowych - meet.js 27.11.2014

2014-11-27

Złożoność modeli

20 Wydajność aplikacji AngularJS

DEEP COMPARE

$scope.$watch(watchExpression, changeCallback, true)

Page 21: Wydajność aplikacji Angularowych - meet.js 27.11.2014
Page 22: Wydajność aplikacji Angularowych - meet.js 27.11.2014
Page 23: Wydajność aplikacji Angularowych - meet.js 27.11.2014
Page 24: Wydajność aplikacji Angularowych - meet.js 27.11.2014

Kamil Zasada [email protected]

2014-11-27 24 Wydajność aplikacji AngularJS

Dzięki!