Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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.
Uruchom aplikację i przejdź do widoku, który ma być często używany.
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
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").
Wprowadź polecenie:
wpr -start power -filemodePozostaw bezczynność urządzenia przez 5 minut.
Wprowadź polecenie:
wpr -stop idletrace.etlAby otworzyć ślad przy użyciu narzędzia Windows Performance Analyzer (WPA), wprowadź polecenie:
wpa.exe idletrace.etlOtwó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ł.
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.
Otwórz wiersz polecenia (lub, na przykład PowerShell lub Command Prompt) w trybie administratora.
Wprowadź polecenie:
wpr -start gpu -filemodePozostaw urządzenie w stanie bezczynności przez 5 minut.
Wprowadź polecenie:
wpr -stop gputrace.etlAby otworzyć ślad przy użyciu narzędzia Windows Performance Analyzer (WPA), wprowadź polecenie:
wpa.exe gputrace.etlOtwó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.
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
Windows developer