Udostępnij przez


Zwiększanie zużycia energii i żywotność baterii przez zminimalizowanie pracy w tle

W tym przewodniku pokazano, jak poprawić sposób, w jaki aplikacja systemu Windows zużywa energię, oferując zasady pomagające poprawić ogólną wydajność i żywotność baterii.

Najbardziej podstawowymi zasadami poprawy zużycia energii są upewnienie się, że gdy aplikacja znajduje się w tle, nie:

  • korzystanie z zasobów systemowych,
  • wybudzanie procesora poprzez zegary
  • wybudzanie procesora poprzez oczekiwanie na zdarzenia synchronizacji pionowej.

Bycie "w tle" oznacza, że aplikacja nie jest widoczna ani słyszalna dla użytkownika. Powinno być niewiele, jeśli w ogóle, powodów, by obudzić procesor CPU lub korzystać z zasobów systemowych w tle. Sprawdzanie, czy aplikacja wyzwala te zdarzenia i czy rozwiązanie tej przyczyny może znacznie poprawić zużycie energii aplikacji, żywotność baterii i zmniejszyć emisję dwutlenku węgla, która będzie wynikać z używania aplikacji przez klientów.

Aby sprawdzić, czy procesor CPU nie budzi się, aby nie wykonywać niepotrzebnej pracy, gdy aplikacja nie jest używana, możesz przechwycić i przeanalizować ślad przy użyciu narzędzia Windows Performance Analyzer (WPA). Omówimy kroki wyjaśniające, jak to zrobić poniżej.

Przechwytywanie śladu i sprawdzanie niepotrzebnej pracy

Ważne jest, aby podczas uruchamiania aplikacji skonfigurować odpowiednie warunki przed przechwyceniem śladu w celu przeanalizowania, czy wykonywana jest niepotrzebna praca, która może wyczerpać energię. Możesz również chcieć uruchomić wiele śladów, aby przetestować aplikację w różnych warunkach.

Konfiguracja

  1. Pobierz urządzenie testowe do bezczynności, otwierając Menedżera zadań i upewniając się, że użycie procesora CPU jest mniejsze niż 5%. Pozwoli to zminimalizować interferencję pomiarów i zapewnić rozsądne ślady o odpowiednich rozmiarach.

  2. Uruchom aplikację i przejdź do widoku, który ma być często używany.

  3. Zminimalizuj aplikację. *Możesz powtórzyć następujące kroki, gdy okno aplikacji jest w pełni okludowane (zablokowane z widoku) za innymi oknami i gdy aplikacja znajduje się na pierwszym planie, po okresie braku interakcji przez użytkownika, aby upewnić się, że niepotrzebna praca nie jest inicjowana przez aplikację.

Mierz i oceniaj użycie procesora w tle

  1. Otwórz wiersz polecenia ( PowerShell lub Wiersz Polecenia) w trybie administratora . (Jeśli nie uruchomisz programu w trybie administratora, może pojawić się kod błędu: 0xc5585011, "Nie udało się aktywować polityki profilowania wydajności systemu").

  2. Wprowadź polecenie: wpr -start power -filemode

  3. Pozostaw bezczynność urządzenia przez 5 minut.

  4. Wprowadź polecenie: wpr -stop idletrace.etl

  5. Aby otworzyć ślad przy użyciu narzędzia Windows Performance Analyzer (WPA), wprowadź polecenie: wpa.exe idletrace.etl

  6. Otwórz graf Obliczenia>użycie procesora CPU (dokładne).

    • Przejdź do swojego procesu (lub jeśli masz model wieloprocesowy, do wszystkich procesów związanych z aplikacją) i oceń liczbę przełączeń Cswitch, "Wykorzystanie przez CPU". Najlepiej, aby były one jak najbardziej zbliżone do 0, gdy aplikacja jest w tle. Przyglądanie się stosom danych to doskonały sposób na znalezienie miejsc, w których są używane zasoby, i jak je ulepszyć.

    • Szukaj nadmiernych obudzeń wątków, dodając "Nowy stos wątku", aby sprawdzić, na którym stosie wątek się obudził.

    wykres WPA przedstawiający obciążenie CPU, liczbę i procent użycia

  7. Otwórz graf Obliczenia>użycie procesora CPU (próbkowane). Śledź problemy z użyciem CPU, analizując, gdzie w kodzie spędzany jest czas na jego wykonywanie.

Mierzenie i ocenianie czekania na vsync podczas działania w tle

Uwaga / Notatka

Przed zbadaniem tego bardziej zaawansowanego scenariusza skupić się na podstawowym użyciu procesora CPU w poprzedniej sekcji.

  1. Otwórz wiersz polecenia (lub, na przykład PowerShell lub Command Prompt) w trybie administratora.

  2. Wprowadź polecenie: wpr -start gpu -filemode

  3. Pozostaw urządzenie w stanie bezczynności przez 5 minut.

  4. Wprowadź polecenie: wpr -stop gputrace.etl

  5. Aby otworzyć ślad przy użyciu narzędzia Windows Performance Analyzer (WPA), wprowadź polecenie: wpa.exe gputrace.etl

  6. Otwórz wykres aktywności systemu , zdarzeń ogólnych>.

    • Filtruj według zdarzeń „Microsoft-Windows-Dxgkrnl”.
    • Przeciągnij kolumnę Process, aby stała się drugą kolumną.
    • Sprawdź, czy wywołujesz WaitForVsync. Na przykład za pomocą interfejsów API, takich jak IDXGIOutput::WaitForVBlank (dxgi.h) poprzez zdarzenie WaitForVerticalBlankEventInternal.

    graf WPA przedstawiający zdarzenia usługi MS Edge webview2

Aby dowiedzieć się więcej, zobacz artykuł Using Windows Performance Analyzer to analyze Modern Standby issues (Analizowanie problemów z nowoczesnym stanem wstrzymania).

Dodatkowe zasoby