Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Андрей Сидоров и Алексей Лавренюк

994 vues

Publié le

Андрей Сидоров и Алексей Лавренюк
Яндекс
Измерение и улучшение энергопотребления Android-приложений на примере Яндекс.Браузера

Publié dans : Mobile
  • Soyez le premier à commenter

Андрей Сидоров и Алексей Лавренюк

  1. 1. Измерение энергопотребления мобильных приложений Алексей Лавренюк, Андрей Сидоров
  2. 2. Задача Энергопотребление — это интегральная метрика › Мерить потребление тока на любых устройствах (мобильные телефоны, планшеты, может быть даже ноутбуки) › Делать это автоматически › Настолько часто, насколько потребуется (возможно, тысячи раз в секунду) 3
  3. 3. Как это делают обычно
  4. 4. 5
  5. 5. 5
  6. 6. 5
  7. 7. 5
  8. 8. 6
  9. 9. 7
  10. 10. Окей. 
 Строим мультиметр
  11. 11. › Цифровые измерительные приборы промышленного класса › Power Monitor › battOr Что есть готового 9
  12. 12. 10
  13. 13. 11
  14. 14. 12
  15. 15. Измерение в разрыве USB — proof of concept › Устройство не ест больше 500 мА › Батарейка портит измерения Поэтому вытащим батарейку и используем внешнее питание. Почему нельзя мерить ток в разрыве USB 13
  16. 16. 14
  17. 17. 15
  18. 18. 16
  19. 19. Как вывести провода из закрытого корпуса? Гибкие печатные платы (battOr). Приблизительно $42 за один провод. Или… Наше решение… 17
  20. 20. 18
  21. 21. 19
  22. 22. 20
  23. 23. 21
  24. 24. В погоне за sample rate
  25. 25. battOr: рендеринг фрейма 23
  26. 26. нужно больше SPS!
  27. 27. Разные ядра, разные АЦП Arduino Nano на 10KSPS Arduino Due (1KSPS) STM32 (потенциально 1KSPS) 25
  28. 28. 26
  29. 29. 26
  30. 30. 1 миллисекунда с разрешением 1 MSPS 27
  31. 31. 1 миллисекунда с разрешением 1 MSPS 27
  32. 32. Синхронизируй это!
  33. 33. battOr: синхронизация с логами (atrace) 29
  34. 34. 30
  35. 35. 30
  36. 36. www.youtube.com/watch?v=rzCO5fQysw0 31
  37. 37. www.youtube.com/watch?v=rzCO5fQysw0 32
  38. 38. 33
  39. 39. 34
  40. 40. 35
  41. 41. 36
  42. 42. 37
  43. 43. 38 github.com/yandex-load/volta
  44. 44. Ручное тестирование
  45. 45. Метод ручного тестирования 40 t
  46. 46. Метод ручного тестирования 40 t
  47. 47. Метод ручного тестирования 40 отключение
 USB t
  48. 48. Метод ручного тестирования 40 запись измерений старт отключение
 USB t
  49. 49. Метод ручного тестирования 40 запись измерений старт отключение
 USB мигания t
  50. 50. Метод ручного тестирования 40 запись измерений старт отключение
 USB мигания Выполнение
 сценария теста t
  51. 51. Метод ручного тестирования 40 запись измерений стопстарт отключение
 USB мигания Выполнение
 сценария теста t
  52. 52. Метод ручного тестирования 40 запись измерений стопстарт отключение
 USB мигания Выполнение
 сценария теста подключение
 USB t
  53. 53. Метод ручного тестирования 40 запись измерений стопстарт отключение
 USB мигания Выполнение
 сценария теста подключение
 USB сбор
 логов Lunapark t
  54. 54. Основные пользовательские кейсы 1 41 Yabro 704 mA Chrome 677 mA Yabro 397 mA Chrome 325 mAХолодный запуск Переход по ссылке t [сек] t [сек] 2010 2010
  55. 55. Основные пользовательские кейсы 2 42 Yabro 117 mA Chrome 111 mA Yabro 186 mA Chrome 132 mAАктивный режим Фоновый режим t [сек] t [сек] 5 10 2010
  56. 56. Основные пользовательские кейсы 3 43 Yabro 495 mA Chrome 587 mA Yabro 601 mA Chrome 676 mAВидео Push уведомления t [сек] t [сек] 6030 10 20 30
  57. 57. Автоматизация
  58. 58. Последовательность теста 45
  59. 59. Последовательность теста 45 тест- лист
  60. 60. Последовательность теста 45 старт тест- лист Yandex.Volta
  61. 61. Последовательность теста 45 старт тест- лист Синхро-
 приложение ADB Yandex.Volta
  62. 62. Последовательность теста 45 старт тест- лист Синхро-
 приложение ADB Yandex.Volta
  63. 63. Последовательность теста 45 старт Тестовая сборка тест1 тест2 стоп тест- лист Синхро-
 приложение ADB Yandex.Volta t
  64. 64. Юнит-тесты 46
  65. 65. Юнит-тесты 46 Suites UI trafficfeaturescomponents
  66. 66. Статистика и анализ
  67. 67. Регрессии энергопотребления 48
  68. 68. Регрессии энергопотребления 48 каждаясборкатестируетсяNраз t t t
  69. 69. Регрессии энергопотребления 48 фрагмент2 фрагмент3фрагмент1 каждаясборкатестируетсяNраз t t t
  70. 70. Регрессии энергопотребления 48 сборка 16.3 16.4 Потребленная ёмкость фрагмент2 фрагмент3фрагмент1 каждаясборкатестируетсяNраз 16.5 сборка 16.3 16.4 16.5 сборка 16.3 16.4 16.5 фрагмент1 mAh t t t
  71. 71. Поиск проблемного кода 49
  72. 72. Поиск проблемного кода 49 Сценарий Тест
  73. 73. Поиск проблемного кода 49 Сценарий Тест сборка 17.3 сборка 17.1 сборка 17.2
  74. 74. Поиск проблемного кода 49 Сценарий Тест сборка 17.3 сборка 17.1 PR2 PR3 PR1 PR4 PR5 сборка 17.2
  75. 75. Поиск проблемного кода 49 Сценарий Тест сборка 17.3 сборка 17.1 PR2 PR3 PR1 PR4 PR5 сборка 17.2
  76. 76. Поиск проблемного кода 49 Сценарий Тест сборка 17.3 сборка 17.1 PR2 PR3 PR1 PR4 PR5 до PR3 после PR3 сборка 17.2 t t
  77. 77. Контроль энергопотребления PR 50 Разработчик
  78. 78. Контроль энергопотребления PR 50 PR Разработчик
  79. 79. Контроль энергопотребления PR 50 PR сборка
 и измерения Ревьюер дополнительный
 тест suite tests специальный тест Разработчик нужен
 тест?
  80. 80. Контроль энергопотребления PR 50 PR сборка
 и измерения Ревьюер Ревьюер
 vs
 Разработчик дополнительный
 тест рост? suite tests специальный тест Разработчик нужен
 тест?
  81. 81. Контроль энергопотребления PR 50 PR сборка
 и измерения Ревьюер Ревьюер
 vs
 Разработчик дополнительный
 тест рост? suite tests специальный тест Разработчик нужен
 тест? merge need work
  82. 82. Интеграция 51 ферма Volta Lunapark TeamCity BitBucket
  83. 83. Интеграция 51 ферма Volta Lunapark TeamCity статистическое
 представление контроль PR поиск PR BitBucket API
  84. 84. Алексей Лавренюк инженер по тестированию direvius@yandex-team.ru Контакты: panticonur@yandex-team.ru Андрей Сидоров разработчик ядра мобильного браузера @direvius, #yandextank
  85. 85. Ссылки Нагрузочный чат: gitter.im/yandex/yandex-tank volta: github.com/yandex-load/volta overload: overload.yandex.net 53
  86. 86. Спасибо за внимание!

×