Марина Широчкина "Производительность клиентсайда...

66
руководитель группы Я.Субботник в Санкт-Петербурге, 1 декабря 2012 Производительность клиентсайда и тестирование скорости отрисовки страницы Марина Широчкина

Upload: yandex

Post on 16-Jun-2015

1.931 views

Category:

Documents


4 download

DESCRIPTION

Производительность на стороне клиента богатая проблемная область. Быстрый ответ фронтенда никак не гарантирует, что страницы вашего сервиса будут грузиться с приемлемой скоростью у конечного пользователя. Оптимизации стилей и скриптов не позволяют узнать насколько они улучшили общую производительность страницы целиком. Быстрая загрузка страницы не гарантирует ее быструю отрисовку. Мы сосредоточили свои усилия на измерении скорости отрисовки страницы так, как ее видит конечный пользователь. Рассказ о причинах выбора такого подхода, его плюсах и минусах.

TRANSCRIPT

Page 1: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

руководитель группы Я.Субботник в Санкт-Петербурге, 1 декабря 2012

Производительность клиентсайда и тестирование скорости отрисовки страницы

Марина Широчкина

Page 2: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Откуда проблемы на клиентсайде?

Page 3: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

3

Производительность  client-­‐side  -­‐  это  

Page 4: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

4

Даже  если  с  server-­‐side  все  хорошо,  

Page 5: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

5

это  еще  ничего  не  гарантирует  

Page 6: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

6

Причины  медленной  работы      •   Сетевые  проблемы  

•   Конфигурационные  проблемы      •  Неоптимальная  верстка  

Page 7: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

7

Причины  медленной  работы      •   Сетевые  проблемы  

•   Конфигурационные  проблемы      •  Неоптимальная  верстка  

Page 8: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

8

Причины  медленной  работы      •   Сетевые  проблемы  

•   Конфигурационные  проблемы      •  Неоптимальная  верстка  

Page 9: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

9

Причины  медленной  работы      •   Сетевые  проблемы  

•   Конфигурационные  проблемы      •  Неоптимальная  верстка  

Page 10: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

10

Причины  медленной  работы      •   Сетевые  проблемы  

•   Конфигурационные  проблемы      •  Неоптимальная  верстка  

Page 11: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Зачем нужно тестирование?

Page 12: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

12

Best  pracTces  и  оптимизация    

Page 13: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

13

Был  ли  профит?  

Page 14: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

14

Мониторинг  скорости  загрузки  

• NavigaTon  Timing    h^p://www.w3.org/TR/navigaTon-­‐Tming/    •  Boomerang  (Yahoo)  h^ps://github.com/yahoo/boomerang        

Page 15: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

15

Тестирование  скорости  загрузки    

• WebPageTest  h^p://www.webpagetest.org/    •  Selenium  +  BrowserMobProxy+HarStorage  h^p://code.google.com/p/selenium/  h^ps://github.com/webmetrics/browsermob-­‐proxy  h^ps://github.com/pavel-­‐paulau/harstorage          

Page 16: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Что выбрали мы?

Page 17: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

17

Чего  хотели  мы:    

•  полный  комплект  браузеров            

Page 18: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

18

Чего  хотели  мы:    

•  полный  комплект  браузеров    •  эмулирование  сетевых  условий            

Page 19: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

19

Чего  хотели  мы:    

•  полный  комплект  браузеров    •  эмулирование  сетевых  условий    •  измерять  не  только  сетевые  метрики          

Page 20: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

20

Отрисовка  

Page 21: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

21

Page 22: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

22

Page 23: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

23

Page 24: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

24

Page 25: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

25

Page 26: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

26

Page 27: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

27

Page 28: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

28

Page 29: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

29

Page 30: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

30

Page 31: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

31

Page 32: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

32

Page 33: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

33

Page 34: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

34

Page 35: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

35

Page 36: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

36

Page 37: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

37

Tme(PageStartPaint)  =  1880мс  

Page 38: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

38

Tme(PageEndPaint)  =  7140мс  

Page 39: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

39

В  числах  и  в  сравнении  

Page 40: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

40

Tme(ElementStartPaint)/Tme(ElementEndPaint)  

 

Page 41: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Как получилось?

Page 42: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

42

Это  работает.    Вы  даже  могли  об  этом  слышать.    

http://bit.ly/SjS0FQ

http://bit.ly/ViTiW1

Page 43: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

43

Минус  N  1    Дорого  –  пришлось  сделать  инструмент    

         

Page 44: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

44

Минус  N  2    Подход  «сверху  вниз»  

         

User  

Layout  

Browser  

Client’s  computer  

Network  

Server-­‐side  

Page 45: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

45

Плюсы    Новые  метрики  и  взгляд  с  нового  ракурса  

       

Page 46: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

46

Бывает  всякое  –  проблемы  в  Chrome  

Page 47: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

47

Бывает  всякое  –  отрисовка  на  горячем  кеше  не  всегда  быстрее  

Page 48: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

48

Бывает  всякое  

Page 49: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

49

Все  меняется  

Page 50: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Коротко об инструменте

Page 51: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

51

Доступные  условия:      

       

Page 52: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

52

Доступные  условия:  прогрев  и  очистка    

DNS cache Files cache

Cookies

LocalStorage AppCache

Page 53: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

53

Доступные  условия:    

RTT Bandwidth

Packet loss

Page 54: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

54

Сценарий  теста  прост      

   

Page 55: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

55

Сырые  данные:  захват  изображения  (100  fps±)  

 

Page 56: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

56

Сырые  данные:  запись  дампа  трафика  

 

Page 57: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

57

Обработка  данных:  конвертация  в  HAR  

 

Page 58: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

58

Обработка  данных:  извлечение  области  viewport  

 

Page 59: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

59

Обработка  данных:  удаление  соседних  дубликатов  

 

Page 60: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

60

Обработка  данных:  удаление  единичных  циклических  аномалий  

   

     

Page 61: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

61

Обработка  данных:  работа  с  масками  

   

         

Page 62: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

62

Обработка  данных:  отчет  в  формате  csv  

 

Page 63: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

63

Работа  продолжается..              

Page 64: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

64

Open  source?          Поговорим  в  2013  году  

Page 65: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Вопросы?

Page 66: Марина Широчкина "Производительность клиентсайда через тестирование скорости отрисовки страниц"

Марина Широчкина

Руководитель группы

[email protected]