Aracılığıyla paylaş


Windows uygulamanızın yanıt hızını geliştirme

Bu kılavuz, başlatma ve anahtar etkileşimleri için gecikme süresini iyileştirerek Windows uygulamanızın yanıt hızını iyileştirmenize yardımcı olur. Hızlı ve hızlı yanıt veren etkileşimler (düşük gecikmeli etkileşimler olarak da bilinir) daha iyi bir kullanıcı deneyimi oluşturur. Etkileşim beklentilerini anlamak, geçerli süreleri ölçmek ve etkileşim sınıfına bağlı olarak iyileştirme hedefleri belirlemek, kullanıcılarınızın deneyiminde ve memnuniyetinde önemli iyileştirmelere yol açabilir.

Duyarlı davranış için etkileşimleri iyileştirmeye yönelik adım adım kılavuz

Müşteriler bir uygulama başlatıldığında, menü gezintisinde veya sayfa/içerik yükünün yavaş olduğunu hissedebilir. Onlar hızlı ve sorunsuz bir deneyim bekliyor ve biz aşağıda bu beklentileri daha iyi anlamak için bazı adımlar ve rehberlik paylaştık.

Gecikme süresini iyileştirmeye yönelik temel adımlar şunlardır:

  1. Senaryoyu tanımlayın ve TraceLogging olayları ekleyin.

    Başlatma, menü açma, yeni bir sayfaya gitme ve içerik işleme gibi uygulamanızı kullanırken kullanıcının gerçekleştireceği önemli etkileşimlerin listesini oluşturun. Bu etkileşimlerin her biri için ölçüm ve analiz için kullanılacak bir başlangıç olayı ve durdurma olayı ekleyin. Windows için Olay İzleme (ETW) için kendi kendini açıklayan bir biçim olan TraceLoggingekleme hakkında daha fazla bilgi edinin.

  2. Etkileşim sınıfına göre hedefler belirleyin.

    Kullanıcıların, etkileşim türüne bağlı olarak bir uygulamanın performansı ve yanıt verme hızıyla ilgili farklı beklentileri vardır. Örneğin, bir uygulamanın ne kadar hızlı başlatıldığı ve bir sayfanın ne kadar hızlı yükleniyor olduğu. Kullanıcıların uygulamanızdaki önemli etkileşimleri tamamlaması için geçen kabul edilebilir süreyi düşünün. Bu, 200 milisaniye (ms) ile 5 saniye (sn) arasında değişebilir. Ardından her göreve ilişkili bir hedefe sahip bir etkileşim sınıfı etiketi atayın. Yanıt verme algısını geliştirmek için kullanıcı arabirimini (UI) nasıl dahil edebileceğinize ilişkin önerilerin yanı sıra birkaç temel yönerge aşağıdadır:

Etkileşim sınıfı etiketi Kullanıcı algısı Gecikme aralığı Örnekler Önerilen Kullanıcı Arayüzü
Hızlı En az fark edilebilir gecikme 100 - 200 milisaniye Uygulama çubuğunu aç, sağ tıklama menüsü
Etkileşimli Hızlı, ancak hızlı değil 300 - 500 ms Bir uygulamadan çıkma, önbelleğe alınmış arama sonuçlarını görüntüleme
Durdur Hızlı değil, ama duyarlı hissediyor. 500 ms - 1 sn Farklı bir sayfaya gidin, uygulamayı askıya alınmış durumdan devam ettirin, web arama sonuçlarını görüntüleyin Bu senaryo için gereken süreyi maskelemek için giriş animasyonu (örneğin, yeni içeriğin uçarak gelmesi) kullanılabilir.
Dur Senaryo için çalışma miktarı nedeniyle hızlı değil 1 - 3 sn Uygulamayı başlatma İlerleme durumunu not etmek için dönen/bekleyen bir imleç kullanılabilir. Bu senaryo için geçen süreyi maske etmek için hem çıkış hem de giriş animasyonu (eski sayfayı uçurma, yeni sayfayı içeri uçurma) kullanılabilir.
Uzun süre bekleme Artık duyarlı hissetmiyor 2 - 5 sn Büyük uygulama başlatmalarını (genişletilmiş açılış ekranı kullanma), HD video akışını başlatma "Yükleniyor arayüzü görüntülenir; mümkünse kullanıcı için bir 'iptal' seçeneği ekleyin." Yükleme kullanıcı arabirimi Hızlı etkileşim sınıfında görünmelidir. Yükleme kullanıcı arabiriminin kalan yüzdeyi veya süreyi görüntülemesi gerekmez.
Tutsak Uzun bir bekleme – kaçınılmaz uzun/karmaşık senaryolar için ayrılmıştır 5 - 10 sn Sisteme giriş "Kullanıcı arabirimini yükleme" veya iletişim kutusu görüntülenir; mümkün olduğunda, kullanıcı için bir "iptal et" seçeneği ekleyin. Diyalog kutusu Fast interaction sınıfı içinde görünmelidir. Kullanıcıya yararlı bir bağlam sağlayacaksa, iletişim kutusunda kalan bir yüzde veya süre görüntülenmelidir.
Uzun süre devam eden Uzun işlemler – kullanıcılar büyük olasılıkla birden çok görev yapacaktır (işlem sırasında geçiş yapacaktır) 10 - 30+ saniye Yeni özellikleri veya güncelleştirmeleri yükleme, büyük dosya indirmeleri Kullanıcı arabirimi, birden çok görev yapma olasılığını yansıtacak şekilde tasarlanmalıdır. Tamamlanma tahmini (yüzde, kalan süre vb.) dahil olmak üzere bir ilerleme durumu iletişim kutusu görüntülenmelidir. Alternatif olarak, kullanıcı arabirimi tamamen simge durumuna küçültebilir ve yalnızca bir bildirim kullanarak senaryo tamamlandığında kullanıcıyı bilgilendirebilir.
  1. Belirli etkileşimlerin tam sürelerini denetlemek için Windows Performans Çözümleyicisi (WPA)kullanarak izleme yakalayabilir ve analiz edebilirsiniz.

    • İzleme verilerinizi yakalamadan önce Görev Yöneticisi'ni açarak ve CPU kullanımının 5%'den az olduğundan emin olarak test cihazınızı boşta kalacak şekilde ayarlayın. Bunun yapılması, ölçüm girişimini en aza indirir ve makul boyutlarda izler sağlar. Bu, ölçmeyi hedeflediğiniz etkileşimi daha iyi yalıtmanıza yardımcı olur.

    • İzleme yakalamak içinyönetici modunda bir komut satırı (PowerShell veya Komut İstemi) açın.

    • Şu komutu girin: wpr -start GeneralProfile -filemode

    • Uygulamanızda etkileşim senaryosunu çalıştırın.

    • Şu komutu girin: wpr -stop Trace.etl

  2. İzlemeyi analiz edin ve geliştirme fırsatlarını bulun.

    Windows Performance Analyzer (WPA)içinde yakaladığınız izlemeyi açarak uygulamanız tarafından desteklenen her bir anahtar etkileşiminin süresini analiz edin.

    • İzlemeyi WPA'da açmak için komut satırınıza şunu girin: wpa.exe Trace.etl
    • Sistem Etkinliği açılır menüsünü genişletin ve analiz görünümünü açmak için "Genel Olaylar"a çift tıklayın.
    • Uygulamanızla ilgili olay serisini seçin ve istediğiniz anahtar etkileşimiyle ilişkili İşlem, Görev Adı ve Olay adını bulana kadar "Sağlayıcı Adı" açılan listesini genişletin. Etkileşim olayının süresi, Saat sütununda ve Süre, Başlangıç Saative Bitiş Saatigösteren grafikte listelenir.

    İzlemenizin süresi etkileşim sınıfı hedeflerine (örn. 500ms) ulaşmıyorsa, Uygulamanızın anahtar iş parçacıklarını (büyük olasılıkla UI iş parçacığı) tanımlayın ve CPU kullanımı ve bekleme süreleri için en üst yığınlara bakın. *Analizi gerçekleştirirken bazı sorunların kendi uygulamanızın koduna özgü olmayabileceğini unutmayın.

    İzleme olayı süresi analizi

Ek kaynaklar