Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuz, Genel cihaz performansını ve pil ömrünü iyileştirmenize yardımcı olacak ilkeler sunarak Windows uygulamanızın güç tüketme biçimini nasıl geliştireceğini gösterir.
Güç tüketimini iyileştirmeye yönelik en temel ilkeler, uygulamanız arka plandayken aşağıdakilerin yapılmadığından emin olmaktır:
- sistem kaynaklarını kullanın,
- süreölçerler aracılığıyla CPU'yu uyandırmak,
- vsync olaylarını bekleyerek CPU'yu uyandır.
"Arka planda" olmak, uygulamanızın kullanıcıya görünür veya sesli olmadığı anlamına gelir. Arka planda CPU'yu uyandırmak veya sistem kaynaklarını kullanmak için nadiren, eğer varsa, bir neden olmalıdır. Uygulamanızın bu olayları tetikleyip tetiklemediğini denetlemek ve nedeni ele almak, uygulamanızın güç tüketimini, pil ömrünü önemli ölçüde artırabilir ve uygulamanızı kullanan müşterilerin yol açacağı karbon emisyonlarını azaltabilir.
Uygulamanız kullanımda değilken CPU'nın gereksiz işler yapmak üzere uyanmadığını denetlemek için Windows Performans Çözümleyicisi'ni (WPA) kullanarak bir izleme yakalayıp analiz edebilirsiniz. Bunun nasıl yapılacağını açıklayan adımları aşağıda inceleyeceğiz.
Bir iz alıp gereksiz çalışmaları denetleyin
Uygulamanız çalıştırılırken güç tüketimine neden olabilecek gereksiz işlerin yapılıp yapılmadığını analiz etmek için izleme almadan önce doğru koşulları ayarlamak önemlidir. Uygulamanızı çeşitli koşullar altında test etmek için birden çok izleme çalıştırmak da isteyebilirsiniz.
Kurulum
Görev Yöneticisi'ni açarak ve CPU kullanımının 5%'den az olduğundan emin olarak test cihazınızın boşta kalmasını sağlayın. Bunun yapılması, ölçüm etkileşimini en aza indirir ve makul boyutlu izler sağlar.
Uygulamanızı başlatın ve yaygın olarak kullanılması beklenen bir görünüme gidin.
Uygulamanızı simge durumuna küçültün. *Uygulama pencereniz diğer pencerelerin arkasında tamamen kapalıyken (görünüm engellenirken) ve uygulamanız ön plandayken, kullanıcı tarafından hiçbir etkileşim kurulmadığında, uygulama tarafından gereksiz işlerin başlatılmadığından emin olmak için aşağıdaki adımları tekrarlamak isteyebilirsiniz.
Arka plandayken CPU kullanımını ölçme ve değerlendirme
Yönetici modunda bir komut satırı (PowerShell veya Komut İstemi) açın. (Yönetici modunda çalıştırılmazsa hata kodu alabilirsiniz: 0xc5585011, "sistem performansının profilini oluşturma ilkesi etkinleştirilemedi.")
Komutunu girin:
wpr -start power -filemodeCihazı 5 dakika boşta bırakın.
Komutunu girin:
wpr -stop idletrace.etlWindows Performance Analyzer (WPA)'yı kullanarak izlemeyi açmak için şu komutu girin:
wpa.exe idletrace.etlHesaplama>CPU Kullanımı (Kesin) grafiğini açın.
"İşleminize gidin (veya uygulamanızla ilgili tüm işlemler çok işlemli bir model kullanıyorsanız) ve 'CPU'ya göre kullanım' için Cswitch sayısını değerlendirin." İdeal olarak bunlar, uygulama arka plandayken mümkün olduğunca 0'a yakındır. Kaynakların nerede kullanıldığını ve kullanımını nasıl iyileştirebileceğinizi bulmak için yığınlara bakmak harika bir yöntemdir.
Aşırı uyandırmaları görmek için iş parçacığının hangi yığında uyandığını belirlemek üzere "Yeni İş Parçacığı Yığını" ekleyin.
Hesaplama>CPU Kullanımı (Örneklenmiş) grafiğini açın. Kod içinde zamanın hangi bölümlerde harcandığını değerlendirerek CPU kullanım sorunlarını belirleyin.
Arka planda beklenirken vsync beklemesini ölçme ve değerlendirme
Uyarı
Bu daha gelişmiş senaryoyu araştırmadan önce önceki bölümde temel CPU kullanımına odaklanın.
Yönetici modunda bir komut satırı (PowerShell veya Komut İstemi) açın.
Komutunu girin:
wpr -start gpu -filemodeCihazı 5 dakika boşta bırakın.
Komutunu girin:
wpr -stop gputrace.etlİzi Windows Performance Analyzer (WPA) kullanarak açmak için şu komutu girin: Sistem Etkinliği>Genel olaylar grafiğini açın.
- "Microsoft-Windows-Dxgkrnl" olaylarını filtreleyin.
- İşlem sütununu 2. sütun olacak şekilde sürükleyin.
- WaitForVsync'i çağırıp çağırmadığınızdan denetleyin. Örneğin, IDXGIOutput::WaitForVBlank (dxgi.h) gibi API'ler aracılığıyla
WaitForVerticalBlankEventInternalolayı üzerinden.
Daha fazla bilgi edinmek için Modern Bekleme sorunlarını çözümlemek için Windows Performans Çözümleyicisi kullanma makalesine bakın.
Ek kaynaklar
Windows developer