W jaki sposób Apple oblicza zużycie energii przez proces w systemie OS X Mavericks

15

W OS X Mavericks możesz monitorować zużycie energii różnych procesów w Activity Monitor. Monitor aktywności pokazujący kolumny wpływu energiiTutaj możemy zobaczyć „Wpływ energii” i Śr. Wpływ energii i że wartości mogą przekroczyć 100.

Pojawi się również ikona paska menu, która zawiera listę najbardziej energochłonnych aplikacji działających obecnie.

Czy istnieje dokumentacja, w jaki sposób Apple oblicza bieżące zużycie energii? Czy istnieje mapowanie między zużyciem procesora a zużyciem energii?

Mam nadzieję, że są tu eksperci, którzy mogą mi podpowiedzieć.

Kilosh
źródło

Odpowiedzi:

1

Istnieje wiele aspektów wykorzystania procesora, które wpływają na zużycie energii. Nie chodzi tylko o to, ile procesora zużywa aplikacja, ale także o to, jak często i jak elastycznie jest w tym zakresie. Ten ostatni może mieć znacznie większy efekt.

Aplikacja, która musi budzić się dokładnie co 10 ms, aby wykonać tylko kilka wierszy prostego kodu Obj-C, może mieć wpływ wielkości rzędu większego wpływu energii niż ta sama aplikacja wykonująca tysiące wierszy kodu, ale tylko raz na sekundę i nie jest bardzo w szczególności o tym, kiedy dokładnie w ciągu tej sekundy nastąpi obliczenie.

Apple prawdopodobnie używa liczników wydajności Intela i przypisuje je do twojej aplikacji. Najprawdopodobniej uzyskasz najwięcej wglądu, najpierw przestrzegając instrukcji firmy Intel, aby zrozumieć stany zasilania i zarządzanie energią. Będzie to bardzo różnić się w zależności od architektury. Źle zachowująca się aplikacja może mieć znacznie większy wpływ na Haswell niż na „starą” maszynę Core 2.

Można również uwzględnić wykorzystanie innych zasobów, takich jak system audio, wykonywanie operacji we / wy dysku lub korzystanie z urządzeń USB. Prawdopodobna metoda rozliczania przypisałaby Twojej aplikacji całe zużycie energii potrzebne wyłącznie przez zasoby, z których aplikacja korzysta (np. niestandardowe urządzenie USB, dostęp do systemu audio, który w innym przypadku byłby wyłączony) i dokonanie pewnego wyboru dla współdzielonego sprzętu.

Przywróć Monikę
źródło
1

Wszystko zaczyna się od precyzyjnego monitorowania i pomiarów aż do milisekund.

Jako przykład Intel stworzył narzędzie do monitorowania parametrów procesora Intel.

Wyświetla moc częstotliwości i temp.

Zużycie energii i temperatura są iloczynami częstotliwości (prędkości) lub ilości przetwarzanych danych.

Częstotliwość próbkowania wynosi milisekundy, a moc wyrażona jest w watach i mierzy całkowitą moc procesora, podczas gdy monitor aktywności rozkłada ją według zastosowania / procesu.

Intel

Oto artykuł Apple'a na temat zarządzania energią / zużycia energii, który zawiera nieco więcej szczegółów na temat zarządzania energią.

Podsumowując, za pomocą pomiaru mocy ms można lepiej kontrolować ogólny pobór mocy.

Przed TC

przed

Korzystając z powyższych informacji dotyczących aplikacji i wynikowego skumulowanego zużycia energii, Apple wdrożyło funkcje Timer Coalescing i App Nap w celu zarządzania zużyciem energii, co przedstawiono w poniższej tabeli.

Po TC

po

Aby zobaczyć więcej informacji o powyższych wykresach, odwiedź ten artykuł .

Ponieważ aktywność kontrolera procesora, w tym zarządzanie pamięcią RAM i odczyt / zapis dysku, karta sieciowa i inne, na przykład ulepszanie zarządzania pamięcią RAM, zmniejsza również zużycie energii, które występuje z powodu częstej aktywności R / W dysku.

Istnieje wiele aspektów zarządzania energią i są one kombinacją bardzo dokładnych pomiarów i projektów oprogramowania w celu zmniejszenia zużycia energii.

Oto niektóre przykłady:

Funkcja App Nap

Funkcja koalescencji timera PDF

Funkcja zarządzania pamięcią RAM

Ruskes
źródło
1
@grgarside Obrazy wydają się pochodzić z witryn połączonych w odpowiedziach. Niemniej jednak wyraźne określenie źródła każdego obrazu nie zaszkodzi.
nohillside
1
@ patrix- gotowe, pokazałem źródła wszystkiego :)
Ruskes
0

Wydaje się, że nie ma żadnej dokumentacji dotyczącej obliczania zużycia energii. Samo użycie procesora nie jest w stanie wiarygodnie przewidzieć zużycia energii. Tak więc głównymi czynnikami branymi pod uwagę byłyby (są one nieco komplementarne do tego, na co patrzy i kontroluje App Nap):

  • użycie procesora
  • Wejście / wyjście dysku
  • Wejście / wyjście sieciowe
  • Użycie peryferyjne (na przykład głośniki audio)

Ponownie nie ma żadnych szczegółów dotyczących sposobu mierzenia każdego z tych czynników oraz wzorów używanych do obliczania zużycia energii. Możemy zgadywać, że każdy komputer Mac (a także PC) jest wyposażony w różne czujniki w systemie. Możesz użyć narzędzia takiego jak Monitor sprzętu, aby zobaczyć, jakie czujniki ma Twój Mac i co zgłaszają w czasie rzeczywistym.

Kluczowymi czujnikami związanymi ze zużyciem energii, które są dostępne (i istnieją od kilku lat) w Monitorze sprzętu, są napięcie procesora, prąd procesora i moc procesora. W przypadku innych elementów z powyższej listy nie ma czujników sprzętowych do pomiaru zużycia energii. Dlatego Apple musi stosować określone współczynniki ekstrapolacji w zależności od modelu komputera Mac i sprzętu.

MK
źródło
0

Wygląda na to, że numer pochodzi z programu top. Znalazłem następujący post na blogu, który szczegółowo analizuje to obliczenie: https://blog.mozilla.org/nnethercote/2015/08/26/what-does-the-os-x-activity-monitors-energy-impact faktycznie zmierzyć /

W każdym przypadku „Wpływ energii” Monitora aktywności był taki sam, jak toppomiar MOCY. Wszystko wskazuje na to, że oba są obliczane identycznie na tym komputerze.

Ponieważ topjest to oprogramowanie typu open source, możemy zbadać faktyczną formułę / kod w celu obliczenia tej liczby, a post na blogu podsumowuje to jako:

|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

Jak wskazuje @Ruskes, obliczenia są oparte na przebudzeniach procesu mierzonych na poziomie milisekund. W blogu wspomniano, że:

Obliczenia POWER są funkcją CPU i IDLEW. Zasadniczo jest taki sam jak% procesora, ale ma „podatek” 500 mikrosekund na każde wybudzenie i wyjątek dla procesów jądra. Wartość tej funkcji może łatwo przekroczyć 100 - np. Program z zerowym zużyciem procesora i 3000 pobudzeń na sekundę będzie miał wynik POWER na poziomie 150 - więc nie jest to procent. W rzeczywistości MOC jest miarą bezjednostkową, ponieważ jest pół arbitralną kombinacją dwóch miar z niekompatybilnymi jednostkami.

Zasadniczo więc liczbę tę można traktować jako miarę pobudzania procesora.

Bill Mei
źródło