Как измерить энергопотребление вашего внешнего приложения – Устойчивое программное обеспечение

Второй принцип устойчивой разработки программного обеспечения заключается в создании энергоэффективных приложений. Самым первым шагом в этом направлении является измерение энергии, потребляемой вашим приложением, также известной как стоимость энергии. Как только вы измерите или оцените стоимость энергии вашего приложения, вы можете начать рассуждать о том, как ваше приложение может стать более энергоэффективным. Измерение ваших затрат на энергию также позволит вам наблюдать, улучшают ли ваши изменения ваши затраты на энергию с течением времени. Такой подход приводит к вопросу, как лучше всего измерить энергопотребление вашего приложения?

Этот третий пост в моей серии посвящен нативным приложениям, работающим на мобильных устройствах, таких как телефоны и планшеты. Я стремлюсь быть агностиком операционной системы. Подробнее об измерении энергопотребления серверных приложений см. в моем предыдущем посте о энергопотреблении бэкэнд-сервисов. Во втором посте этой серии есть набор советов и приемов по измерению энергопотребления интерфейсных приложений. Мой коллега Скотт Чемберлин (Scott Chamberlin) пишет серию статей о том, как измерить энергопотребление и выбросы углекислого газа клиентскими приложениями Windows. Первый пост в цикле Скотта доступен здесь.

Что влияет на потребление энергии?

Снижение энергопотребления мобильных приложений полезно для окружающей среды, поскольку выбрасывается меньше углерода. Это также способ использовать меньше батареи на устройстве, что, как правило, делает ваших клиентов счастливыми. Чтобы измерить эту стоимость, хорошо сначала понять основные вклады в потребление энергии.

Зеленое изображение экрана телефона, камеры телефона, процессора и символа сети

В статье «Понимание и снижение энергопотребления смартфонов», написанной А. Кэрроллом, Университет Нового Южного Уэльса, 2017 г., содержится подробный анализ энергопотребления мобильных телефонов и множества различных приложений. Я рекомендую прочитать его полностью, но вкратце я резюмирую здесь несколько ключевых элементов. Энергопотребление различается в зависимости от характеристик вашего приложения, но экран всегда будет основным источником затрат на электроэнергию. ЦП является еще одним компонентом, который часто является одним из самых больших расходов наряду с сетью и камерой, когда они используются.

Сеть будет большой движущей силой общего энергопотребления вашего приложения. В статье Э. Дж. Вергара, С. Андерссона, С. Наджма-Техрани «Когда мыши потребляют как слоны» из материалов 5-й международной конференции по энергетическим системам будущего (acm.org), обсуждается энергопотребление мгновенных сообщений (IM ) Приложения. В этой статье они показывают стоимость энергии на основе шаблонов данных IM и стоимость ввода уведомлений.

Читайте также:
Уютный асимметричный дом с разнообразием дерева

Измерение энергопотребления

Лучший и наименее навязчивый способ измерения энергопотребления всегда будет заключаться в использовании счетчика ватт-часов, подключенного непосредственно к стене. Таким образом, вы можете измерить общую потребляемую мощность вашего устройства, что поможет вам рассчитать стоимость энергии. В моем предыдущем посте, посвященном фронтенд-приложениям, я изложил некоторые соображения, которые могут оказаться полезными при рассмотрении подхода с использованием счетчика ватт-часов, и они так же актуальны и для мобильных приложений.

Рисунок ваттметра, подключенного к стене, на рисунке также есть листья.

Есть и другие доступные варианты, некоторые из них уже находятся на стадии разработки, что может быть очень полезно, чтобы убедиться, что вы принимаете решения по энергосбережению с самого начала. Для приложений Android в Android Studio есть встроенный профилировщик энергопотребления. Этот профилировщик оценивает энергопотребление ЦП, сетевого радио и датчиков GPS, а также показывает возникновение различных системных событий, которые могут повлиять на энергопотребление. При разработке iOS-приложений в XCode есть аналогичный профилировщик, который можно использовать при отладке. Преимущество обоих решений заключается в том, что они позволяют выполнять анализ на этапе кода, не развертывая ваше приложение где бы то ни было.

Для измерения стоимости энергии беспроводной передачи в мобильных устройствах, которая может быть весьма значительной в зависимости от вашего приложения, можно использовать инструмент EnergyBox. Впервые он был представлен в статье «EnergyBox: раскрытие стоимости энергии беспроводной передачи для мобильных устройств» Vergara et al. Устойчивые вычисления: информатика и системы 4.2, 2014 г. Этому инструменту нужны реальные трассировки трафика, что немного усложняет его использование на этапе разработки. Он также ориентирован в основном на WIFI и 3G, что в зависимости от рынка, на который вы ориентируетесь, может быть проблемой.

Принимать меры

Для измерения энергоэффективности уже развернутой веб-страницы можно использовать Green Spector. Он проверит вашу веб-страницу на реальном мобильном устройстве и даст вам оценку от 0 до 100.

Как измерить энергопотребление вашего внешнего приложения

Второй принцип устойчивой разработки программного обеспечения заключается в создании энергоэффективных приложений. Самым первым шагом в этом направлении является измерение энергии, потребляемой вашим приложением, также известной как стоимость энергии. Как только вы измерите или оцените стоимость энергии вашего приложения, вы можете начать рассуждать о том, как ваше приложение может стать более энергоэффективным. Измерение ваших затрат на энергию также позволит вам наблюдать, улучшают ли ваши изменения ваши затраты на энергию с течением времени. Такой подход приводит нас к вопросу, как лучше всего измерить энергопотребление вашего приложения?

Читайте также:
Самоклеящаяся пленка для мебели: виды, поклейка

В этом сообщении блога основное внимание уделяется измерению затрат на электроэнергию для приложений, работающих на стороне клиента на компьютере, таких как веб-приложения и собственные приложения. В этом посте не рассматриваются нативные приложения, работающие на мобильных устройствах, таких как телефоны и планшеты. Дополнительные сведения об измерении энергопотребления серверных приложений см. в моем предыдущем посте о энергопотреблении серверных служб. Мой коллега Скотт Чемберлин (Scott Chamberlin) пишет серию статей о том, как измерить энергопотребление и выбросы углекислого газа клиентскими приложениями Windows. Первый пост в серии Скотта доступен здесь. Этот пост не зависит от операционной системы и в первую очередь предназначен для интерфейсных приложений.

Измеряйте энергопотребление непосредственно от сетевой розетки

Рисунок ваттметра, подключенного к стене, на рисунке также есть листья.

Измерение энергопотребления непосредственно от настенной розетки — это тот же подход, что и для серверных приложений. Используя счетчик ватт-часов, вы можете измерить общую потребляемую мощность вашего устройства, что поможет вам рассчитать стоимость энергии. Это всегда будет лучший способ измерения энергопотребления, потому что он будет измерять именно то, что потребляет ваше оборудование.

Счетчик ватт-часов дает вам информацию об энергопотреблении всего устройства, но при некотором планировании вы также можете использовать его для определения приблизительного энергопотребления приложения, работающего на вашем устройстве. Однако это будет лучше всего работать для приложений, которые потребляют много системных ресурсов на хосте и/или работают долго. Например, такая программа, как Visual Studio, является хорошим кандидатом, но легкий веб-сайт будет сложнее. Почему это? Ну, при работе ноутбука или мобильного телефона много шума — операционная система, фоновые процессы, сам браузер, если у вас есть веб-страница, и т. д. Все это также потребляет энергию, и шум затрудняет определение. влияние вашего приложения, особенно если ваше приложение потребляет мало системных ресурсов в течение короткого промежутка времени.

Если ваше приложение подходит для этого подхода, вот несколько соображений по использованию счетчика ватт-часов для измерения энергопотребления приложения на вашем устройстве:

  1. Любое оборудование потребляет энергию в режиме ожидания. Считайте это базовым потреблением энергии. Если вас интересуют абсолютные цифры для вашего приложения, вам нужно будет измерить базовое потребление, а затем вычесть его из общего потребления, измеренного при запуске приложения.
  2. Всегда начинайте измерение с установившегося состояния (SS). Будет происходить переходное событие, часто колебание, наблюдаемое как внезапный всплеск энергии при запуске любого электрического компонента, поэтому начинайте измерения, когда вы можете наблюдать SS.
  3. Если в вашем устройстве есть аккумулятор, перед измерением его необходимо полностью зарядить. В противном случае вы в конечном итоге будете измерять энергопотребление при зарядке аккумулятора, что может быть интересно, но не то, к чему мы здесь стремимся.
Читайте также:
Виниловые и линолеумные полы: в чем разница?

Используйте инструменты для измерения или оценки

Что нам нужно измерить? На устройстве наибольшими потребителями энергии обычно являются экран, процессор, графический процессор и память. Оценить и измерить влияние ЦП, ГП и памяти относительно просто. Измерение энергопотребления экрана устройства является более сложной задачей, поскольку на рынке доступно несколько типов экранов и экранных технологий. Различные типы экранов и технологии затрудняют контроль при измерении энергопотребления.

Изображение Измерение энергопотребления внешних приложений

Инструменты для измерения энергопотребления программного обеспечения обычно специфичны для операционной системы или домена приложения. Я привел несколько примеров, но это не исчерпывающий список. Некоторые из приведенных ниже примеров представляют собой профилировщики энергопотребления, которые анализируют и оценивают энергопотребление приложения, работающего на вашем компьютере. Эта оценка полезна для определения способов снижения энергопотребления ваших приложений, но ее нельзя рассматривать как точные значения энергопотребления, поскольку они будут различаться на разных компьютерах, на которых запущено одно и то же приложение. Но для определения областей, в которых вы можете улучшить и отслеживать потребление энергии с течением времени, этого достаточно!

Для устройств Windows есть разные варианты. Я еще раз ссылаюсь на пост моего коллеги Скотта. Также можно использовать диспетчер задач Windows, чтобы найти использование различных компонентов, которые затем могут быть преобразованы в энергию (см. мой другой пост в блоге). Для Edge существует диспетчер задач браузера, который можно использовать аналогичным образом для веб-приложений. Доступ к нему можно получить, нажав Shift + Escape или в разделе «Дополнительные инструменты» в меню браузера.

Для измерения энергоэффективности уже развернутой веб-страницы можно использовать Green Spector. Он проверит вашу веб-страницу на реальном мобильном устройстве и даст вам оценку от 0 до 100. Это можно использовать в сочетании с описанными выше подходами, используемыми для других устройств, чтобы получить более целостный обзор.

Lighthouse — это приложение с открытым исходным кодом, которое можно использовать для оценки качества уже развернутых веб-страниц. Он не оптимизирован для наблюдения за энергопотреблением, но отслеживает некоторые вещи, которые имеют сильную корреляцию с энергопотреблением. Например, оценка производительности учитывает такие вещи, как время загрузки, которое будет иметь корреляцию с использованием сети и использованием графического процессора.

Читайте также:
Схема автоматического управления уличным освещением с использованием LDR и транзистора

Принимать меры

Посмотрите выступление Дэвида Руссета «Создание экологичных прогрессивных веб-приложений» на Green Conf 2020. Он поделится множеством своих знаний и полезных инструментов.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: