SlideShare uma empresa Scribd logo
1 de 87
Baixar para ler offline
Андрей Сидоров и Алексей Лавренюк
Измерение
энергопотребления
мобильных приложений
Алексей Лавренюк, Андрей Сидоров
Задача
Энергопотребление — это интегральная метрика
› Мерить потребление тока на любых устройствах
(мобильные телефоны, планшеты, может быть даже
ноутбуки)
› Делать это автоматически
› Настолько часто, насколько потребуется (возможно,
тысячи раз в секунду)
3
Как это делают обычно
5
5
5
5
6
7
Окей. 

Строим мультиметр
› Цифровые измерительные приборы промышленного класса
› Power Monitor
› battOr
Что есть готового
9
10
11
12
Измерение в разрыве USB — proof of concept
› Устройство не ест больше 500 мА
› Батарейка портит измерения
Поэтому вытащим батарейку и используем внешнее питание.
Почему нельзя мерить ток в разрыве USB
13
14
15
16
Как вывести провода из закрытого корпуса?
Гибкие печатные платы (battOr).
Приблизительно $42 за один
провод.
Или… Наше решение…
17
18
19
20
21
В погоне за sample rate
battOr: рендеринг фрейма
23
нужно больше SPS!
Разные ядра, разные АЦП
Arduino Nano на 10KSPS
Arduino Due (1KSPS)
STM32 (потенциально 1KSPS)
25
26
26
1 миллисекунда с разрешением 1 MSPS
27
1 миллисекунда с разрешением 1 MSPS
27
Синхронизируй это!
battOr: синхронизация с логами (atrace)
29
30
30
www.youtube.com/watch?v=rzCO5fQysw0 31
www.youtube.com/watch?v=rzCO5fQysw0 32
33
34
35
36
37
38
github.com/yandex-load/volta
Ручное тестирование
Метод ручного тестирования
40
t
Метод ручного тестирования
40
t
Метод ручного тестирования
40
отключение

USB
t
Метод ручного тестирования
40
запись измерений
старт
отключение

USB
t
Метод ручного тестирования
40
запись измерений
старт
отключение

USB
мигания
t
Метод ручного тестирования
40
запись измерений
старт
отключение

USB
мигания
Выполнение

сценария теста
t
Метод ручного тестирования
40
запись измерений
стопстарт
отключение

USB
мигания
Выполнение

сценария теста
t
Метод ручного тестирования
40
запись измерений
стопстарт
отключение

USB
мигания
Выполнение

сценария теста
подключение

USB
t
Метод ручного тестирования
40
запись измерений
стопстарт
отключение

USB
мигания
Выполнение

сценария теста
подключение

USB
сбор

логов
Lunapark
t
Основные пользовательские кейсы 1
41
Yabro 704 mA
Chrome 677 mA
Yabro 397 mA
Chrome 325 mAХолодный запуск
Переход по ссылке
t [сек]
t [сек]
2010
2010
Основные пользовательские кейсы 2
42
Yabro 117 mA
Chrome 111 mA
Yabro 186 mA
Chrome 132 mAАктивный режим
Фоновый режим
t [сек]
t [сек]
5 10
2010
Основные пользовательские кейсы 3
43
Yabro 495 mA
Chrome 587 mA
Yabro 601 mA
Chrome 676 mAВидео
Push уведомления
t [сек]
t [сек]
6030
10 20 30
Автоматизация
Последовательность теста
45
Последовательность теста
45
тест-
лист
Последовательность теста
45
старт
тест-
лист
Yandex.Volta
Последовательность теста
45
старт
тест-
лист
Синхро-

приложение
ADB
Yandex.Volta
Последовательность теста
45
старт
тест-
лист
Синхро-

приложение
ADB
Yandex.Volta
Последовательность теста
45
старт
Тестовая сборка
тест1 тест2
стоп
тест-
лист
Синхро-

приложение
ADB
Yandex.Volta
t
Юнит-тесты
46
Юнит-тесты
46
Suites
UI trafficfeaturescomponents
Статистика и анализ
Регрессии энергопотребления
48
Регрессии энергопотребления
48
каждаясборкатестируетсяNраз
t
t
t
Регрессии энергопотребления
48
фрагмент2 фрагмент3фрагмент1
каждаясборкатестируетсяNраз
t
t
t
Регрессии энергопотребления
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
Поиск проблемного кода
49
Поиск проблемного кода
49
Сценарий
Тест
Поиск проблемного кода
49
Сценарий
Тест
сборка 17.3
сборка 17.1
сборка 17.2
Поиск проблемного кода
49
Сценарий
Тест
сборка 17.3
сборка 17.1 PR2
PR3
PR1
PR4
PR5
сборка 17.2
Поиск проблемного кода
49
Сценарий
Тест
сборка 17.3
сборка 17.1 PR2
PR3
PR1
PR4
PR5
сборка 17.2
Поиск проблемного кода
49
Сценарий
Тест
сборка 17.3
сборка 17.1 PR2
PR3
PR1
PR4
PR5
до PR3
после PR3
сборка 17.2
t
t
Контроль энергопотребления PR
50
Разработчик
Контроль энергопотребления PR
50
PR
Разработчик
Контроль энергопотребления PR
50
PR
сборка

и
измерения
Ревьюер
дополнительный

тест
suite
tests
специальный
тест
Разработчик
нужен

тест?
Контроль энергопотребления PR
50
PR
сборка

и
измерения
Ревьюер Ревьюер

vs

Разработчик
дополнительный

тест
рост?
suite
tests
специальный
тест
Разработчик
нужен

тест?
Контроль энергопотребления PR
50
PR
сборка

и
измерения
Ревьюер Ревьюер

vs

Разработчик
дополнительный

тест
рост?
suite
tests
специальный
тест
Разработчик
нужен

тест? merge
need work
Интеграция
51
ферма Volta
Lunapark
TeamCity
BitBucket
Интеграция
51
ферма Volta
Lunapark
TeamCity
статистическое

представление
контроль PR
поиск PR BitBucket
API
Алексей Лавренюк
инженер по тестированию
direvius@yandex-team.ru
Контакты:
panticonur@yandex-team.ru
Андрей Сидоров
разработчик ядра мобильного
браузера
@direvius, #yandextank
Ссылки
Нагрузочный чат: gitter.im/yandex/yandex-tank
volta: github.com/yandex-load/volta
overload: overload.yandex.net
53
Спасибо за внимание!

Mais conteúdo relacionado

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

Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...
Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...
Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...Mad Devs
 
1.3.3 Источники бесперебойного питания RAM batt
1.3.3 Источники бесперебойного питания RAM batt1.3.3 Источники бесперебойного питания RAM batt
1.3.3 Источники бесперебойного питания RAM battIgor Golovin
 
7.2 Каталог Easy 9 Schneider Electric
7.2 Каталог Easy 9 Schneider Electric7.2 Каталог Easy 9 Schneider Electric
7.2 Каталог Easy 9 Schneider ElectricIgor Golovin
 
15 принцип работы и классификация эвм
15 принцип работы и классификация эвм15 принцип работы и классификация эвм
15 принцип работы и классификация эвмSergey Lomakin
 
Краткое руководство ДСК
Краткое руководство ДСККраткое руководство ДСК
Краткое руководство ДСКMarat Akhmetov
 
Legrand UPS новая серия
Legrand UPS новая серияLegrand UPS новая серия
Legrand UPS новая серияelectrofid
 
Bionic arduino class1_russian
Bionic arduino class1_russianBionic arduino class1_russian
Bionic arduino class1_russiansrgksch
 
Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Maxim Krentovskiy
 
Как проводится сертификация волоконно-оптических соединений (ВОЛС)?
Как проводится сертификация волоконно-оптических соединений (ВОЛС)?Как проводится сертификация волоконно-оптических соединений (ВОЛС)?
Как проводится сертификация волоконно-оптических соединений (ВОЛС)?СвязьКомплект
 
УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"
УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"
УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"Expolink
 
Антон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времениАнтон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времениCOMAQA.BY
 
«JMM в Android», Максим Ефимов, Redmadrobot
«JMM в Android», Максим Ефимов, Redmadrobot«JMM в Android», Максим Ефимов, Redmadrobot
«JMM в Android», Максим Ефимов, RedmadrobotMail.ru Group
 
61
6161
61JIuc
 
1.2.5 Источники бесперебойного питания RAM batt
1.2.5 Источники бесперебойного питания RAM batt1.2.5 Источники бесперебойного питания RAM batt
1.2.5 Источники бесперебойного питания RAM battIgor Golovin
 
1.1. Каталог ИБП "RAM batt"
1.1. Каталог ИБП "RAM batt"1.1. Каталог ИБП "RAM batt"
1.1. Каталог ИБП "RAM batt"Igor Golovin
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППMATLAB
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про памятьAndrey Akinshin
 
Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...
Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...
Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...Alexey Telegin
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениSQALab
 

Semelhante a Андрей Сидоров и Алексей Лавренюк (20)

Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...
Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...
Прикладное хардварное программирование. Автоматизируем заказ питьевой воды в ...
 
1.3.3 Источники бесперебойного питания RAM batt
1.3.3 Источники бесперебойного питания RAM batt1.3.3 Источники бесперебойного питания RAM batt
1.3.3 Источники бесперебойного питания RAM batt
 
7.2 Каталог Easy 9 Schneider Electric
7.2 Каталог Easy 9 Schneider Electric7.2 Каталог Easy 9 Schneider Electric
7.2 Каталог Easy 9 Schneider Electric
 
15 принцип работы и классификация эвм
15 принцип работы и классификация эвм15 принцип работы и классификация эвм
15 принцип работы и классификация эвм
 
ZigZag
ZigZagZigZag
ZigZag
 
Краткое руководство ДСК
Краткое руководство ДСККраткое руководство ДСК
Краткое руководство ДСК
 
Legrand UPS новая серия
Legrand UPS новая серияLegrand UPS новая серия
Legrand UPS новая серия
 
Bionic arduino class1_russian
Bionic arduino class1_russianBionic arduino class1_russian
Bionic arduino class1_russian
 
Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?
 
Как проводится сертификация волоконно-оптических соединений (ВОЛС)?
Как проводится сертификация волоконно-оптических соединений (ВОЛС)?Как проводится сертификация волоконно-оптических соединений (ВОЛС)?
Как проводится сертификация волоконно-оптических соединений (ВОЛС)?
 
УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"
УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"
УЦСБ. Тропин Евгений. "КЦОД DATARK честное резервирование"
 
Антон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времениАнтон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времени
 
«JMM в Android», Максим Ефимов, Redmadrobot
«JMM в Android», Максим Ефимов, Redmadrobot«JMM в Android», Максим Ефимов, Redmadrobot
«JMM в Android», Максим Ефимов, Redmadrobot
 
61
6161
61
 
1.2.5 Источники бесперебойного питания RAM batt
1.2.5 Источники бесперебойного питания RAM batt1.2.5 Источники бесперебойного питания RAM batt
1.2.5 Источники бесперебойного питания RAM batt
 
1.1. Каталог ИБП "RAM batt"
1.1. Каталог ИБП "RAM batt"1.1. Каталог ИБП "RAM batt"
1.1. Каталог ИБП "RAM batt"
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКПП
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про память
 
Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...
Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...
Обзор анализаторов мощности, источников питания и электронных нагрузок Keysig...
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времени
 

Mais de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Mais de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

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