Як Apple обчислює споживання енергії процесу в OS X Mavericks


15

У OS X Mavericks ви можете відстежувати споживання енергії для різних процесів у "Моніторі діяльності". Монітор активності, що показує стовпці "Ефект енергії"Тут ми можемо побачити "Енергетичний вплив" та Середній енергетичний вплив ", і що значення можуть перевищувати 100.

Також з'явиться піктограма рядка меню, в якій перераховані найбільш енергоспоживаючі програми, що працюють зараз.

Чи є документація, як яблуко обчислює поточне споживання енергії? Чи є відображення між використанням процесора та споживанням енергії?

Сподіваюся, що тут є деякі експерти, які можуть дати мені підказку.

Відповіді:


1

Існує багато аспектів використання процесора, які впливають на споживання енергії. Справа не лише в тому, скільки процесорів споживає додаток, а й у тому, наскільки часто та гнучко це стосується. Останнє може мати набагато більший ефект.

Додаток, якому потрібно прокидатися рівно кожні 10 мс, щоб виконати лише кілька рядків простого коду Obj-C, може мати на порядок більший енергетичний вплив, ніж той самий додаток, який виконує тисячі рядків коду, але лише раз на секунду і не дуже зокрема про те, коли саме протягом цієї секунди відбудеться обчислення.

Apple, ймовірно, використовує лічильники продуктивності Intel і обліковує їх у вашій програмі. Ви, мабуть, отримаєте найбільше розуміння, спочатку дотримуючись посібників Intel, щоб зрозуміти стан енергії та управління енергією. Це буде сильно відрізнятися між архітектурами. Додаток, що погано поводиться, може мати набагато більший вплив на Haswell, ніж на "стару" машину Core 2.

Використання інших ресурсів, наприклад аудіосистеми, дискового вводу / виводу або використання USB-пристроїв, також може враховуватися. Вірогідний метод обліку призначить вашій програмі все енерговикористання, необхідне ресурсам, які використовує виключно ваша програма (скажімо користувальницький USB-пристрій, доступ до аудіосистеми, що вимкнений інакше), а також певний рейтинг для спільного обладнання.


1

Все починається з моніторингу точності та вимірювань аж до мілісекунд.

В якості прикладу Intel створила інструмент для моніторингу параметрів процесора Intel.

Він відображає частоту живлення та темп.

Використання енергії та температури - це частота (швидкість) або кількість оброблюваних даних.

Частота дискретизації складає мілісекунди, а потужність - у ватах, і вона вимірює загальну потужність для центрального процесора, тоді як монітор активності розбиває його за допомогою програми / процесу.

Intel

Ось стаття від Apple про управління / споживання електроенергії, де детальніше розповідається про те, як керується живленням.

Підсумовуючи, за допомогою вимірювання потужності мс можна краще контролювати загальне споживання електроенергії.

Перед ТК

раніше

Використовуючи вищевказану інформацію про програму та отримане в результаті накопичувальне споживання електроенергії, Apple реалізувала функції Timer Coalescing та App Nap для управління споживанням енергії, що призводить до наведеної нижче діаграми.

Після ТС

після

Щоб дізнатися більше про наведені вище діаграми, відвідайте цю статтю .

Оскільки діяльність управління процесором, включаючи управління оперативною пам’яттю та зчитування / запис диска, мережева карта та інші, наприклад, поліпшення управління оперативною пам’яттю, також зменшує споживання енергії, що виникає внаслідок частої активності дискових / витяжних процесів.

Існує багато аспектів управління енергією, і вони являють собою поєднання дуже точних вимірювань та розробки програмного забезпечення для зменшення споживання електроенергії.

Деякі приклади:

Функція App Nap

Функція злиття таймера PDF

Функція управління ОЗУ


1
@grgarside Зображення походять із сайтів, пов’язаних у відповідях. Тим не менш, це не зашкодить чітко вказати джерело кожної картини.
nohillside

1
@ patrix- зроблено, показав джерела для всього :)
Ruskes

0

Здається, не існує жодної документації щодо розрахунку споживання електроенергії. Само використання CPU не може надійно передбачити споживання електроенергії. Таким чином, основними чинниками, що розглядаються, було б (вони дещо доповнюють те, що розглядає та контролює додаток App):

  • Використання процесора
  • Дисковий вхід / вихід
  • Мережевий вхід / вихід
  • Периферійне використання (наприклад, динаміки аудіо)

Знову ж таки, немає деталей щодо вимірювання кожного з цих факторів та формул, що використовуються для обчислення споживання електроенергії. Ми можемо зробити деякі здогадки про те, що кожен Mac (а також ПК) оснащений різними датчиками всередині системи. Ви можете використовувати такий інструмент, як апаратний монітор, щоб побачити, які сенсори мають ваш Mac і про що вони повідомляють у режимі реального часу.

Основними датчиками, пов'язаними з споживанням енергії, які доступні (і вже кілька років) в апаратному моніторі, є напруга процесора, струм процесора та потужність процесора. Для інших елементів у наведеному вище списку немає апаратних датчиків для вимірювання споживання електроенергії. Таким чином, Apple повинна використовувати конкретні фактори екстраполяції залежно від моделі Mac та базового обладнання.


0

Здається, що номер походить від програми top. Я знайшов наступне повідомлення в блозі, яке досліджує цей розрахунок набагато детальніше: https://blog.mozilla.org/nnethercote/2015/08/26/what-does-the-os-x-activity-monitors-energy-impact -фактично-міряти /

У кожному випадку "Ефект енергії" Монітора активності був таким самим, як topі міра POWER. Кожне свідчення полягає в тому, що вони обчислюються однаково на цій машині.

Оскільки topє відкритим кодом, ми можемо дослідити фактичну формулу / код для того, як обчислюється це число, і повідомлення в блозі підсумовує це як:

|elapsed_us| is the length of the sample period
|used_us| is the time this process was running during the sample period

%CPU = (used_us * 100.0) / elapsed_us

POWER = if is_a_kernel_process()
          0
        else
          ((used_us + IDLEW * 500) * 100.0) / elapsed_us

Як натякає @Ruskes, обчислення грунтується на пробудженні вашого процесу, виміряних на рівні мілісекунд. У публікації блогу зазначається, що:

Розрахунок POWER - це функція процесора та IDLEW. Це в основному те саме, що% CPU, але з "податком" 500 мікросекунд за кожне пробудження і виняток для процесів ядра. Значення цієї функції може легко перевищувати 100 - наприклад, програма з нульовим використанням процесора та 3000 пробуджень в секунду матиме бал POWER 150 - значить, це не відсоток. Насправді POWER - це безцільна міра, оскільки це напівдовільна комбінація двох заходів з несумісними одиницями.

Тож по суті, ви можете вважати число як міру пробудження процесора.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.