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]


Top Related