Zamanlama yakalamalarıyla CPU ve GPU profili oluşturma
Zamanlama yakalamaları, uygulamanızın ayrıntılı analizi için hem CPU hem de GPU profil oluşturma verilerini tek bir yakalamada birleştirir. Bu veriler, oyun çalışırken ve minimum ek yükle toplanır; böylece işin CPU çekirdekleri arasında nasıl dağıtıldığını, grafik işleri arasındaki gecikmenin CPU tarafından gönderilip GPU tarafından yürütülmesi, dosya GÇ erişimleri ve bellek ayırma işlemleri vb. gibi işlemleri görebilirsiniz. Buna da dahil olmak üzere PixEventsaracılığıyla uygulama tanımlı olaylar, işaretçiler ve sayaçlar dahildir.
Zamanlama yakalaması yapma
Bağlantı görünümünden istediğiniz işlemi başlatın veya ekleyin (GPU Yakalama için ilgili seçeneğinin işaretlenmemiş olduğundan emin olun).
Zamanlama yakalama seçeneklerinizi gerektiği gibi yapılandırın ve hazır olduğunuzda kaydı başlatmak için Zamanlama Yakalamayı Başlat düğmesine tıklayın. Kaydı sonlandırmak için Zamanlama Yakalamayı Durdur'e tıklayın (veya uygulamanızı sonlandırın). Kısa bir işlem süresinden sonra ekrana görüntü alma işlemi açılır.
Zamanlama yakalama seçenekleri
İsim | Açıklama |
---|---|
Yakalama Modu | Sıralı: Yakalamayı başlatma ve durdurma arasındaki olayların tamamını kaydedin. Döngüsel: Olayları sabit boyutlu bir arabelleğe kaydedin, sadece verilerin son n saniyesi saklansın. Daha fazla ayrıntı için bu Döngüsel Zamanlama Yakalamaları blog gönderisine göz atın. |
CPU Örnekleri | CPU'nin nerede zaman harcadığını görmek için örnek profil oluşturma gerçekleştirin. Örnekleme oranı yapılandırılabilir. |
Bağlam Değişikliklerinde Çağrı Yığınları | bir iş parçacığı bağlamları değiştirdiğinde çağrı yığınlarını toplayın. |
Dosya erişimleri | Dosya erişimlerini izleme. |
GPU zamanlamaları | GPU çalışmasının ne zaman başladığı ve durduğu hakkında ayrıntılı zamanlama bilgileri toplayın. |
GPU kaynakları | Yığınlar ve kaynaklar gibi D3D nesneleri hakkında ayrıntılı bilgi toplayın. Ayrıca GPU yerleşimi, indirgenmiş ayırmalar ve ayırma geçişlerini de izleyin. |
VirtualAlloc/VirtualFree olayları | VirtualAlloc ve VirtualFree işlevleri aracılığıyla yapılan ayırmaları izler. |
HeapAlloc/HeapFree olayları | HeapAlloc ve HeapFree işlevleri aracılığıyla yapılan ayırmaları izler. |
Özel dağıtıcı olayları | özel bellek ayırıcıları tarafından yapılan ayırmaları PixEventsile izler. |
Sayfa Hatası olayları | Yakalama işlemi çalışırken oluşan sayfa hatalarıyla ilgili verileri toplayın. Sayfa hataları zaman çizelgesinde ve öğe ayrıntıları görünümünde gösterilir. |
Başlık dışı işlemler için çağrı yığınları | Başlık işlemi (başlatılan veya işleme eklenen) dışındaki işlemler için çağrı yığınlarını yakalayın. |
Çekirdek görüntüsü bilgileri | Çekirdek ikili dosyaları için çağrı yığınlarını göstermek için gereken bilgileri toplayın. |
.wpix dosyası yerine .etl dosyası oluşturma | Oluşturulan .etl dosyası daha sonra Dosya | Dönüştür menüsü içinde bir .wpix dosyasına dönüştürülebilir. Bu seçenek, hata tekrarlarını PIX ekibine bildirirken veya ETW verilerini işlemek için başka araçlarınız olduğunda kullanışlıdır. |
Programatik yakalamalar
WinPixEventRuntime kullanarak program aracılığıyla yakalama gerçekleştirebilirsiniz. Ayrıntılar için Programlı yakalamablog gönderisine bakın.
CPU profili oluşturma
Yakalama sırasında CPU Örnekleri seçeneğini etkinleştirmek, uygulamanızın sıcak yolunda yavaş işlevleri saptamanıza ve iş parçacığı beklemeleri ve bağlam değişiklikleriyle ilgili sorunları bulmanıza yardımcı olabilir. Ayrıca farklı ayırma türlerini de izleyebilirsiniz (uygun yakalama seçeneği etkinken).
Bu özellikleri ayrıntılı olarak kapsayan birkaç blog gönderisi vardır:
- Zamanlama Yakalamalarına Genel Bakış
- Zamanlama Yakalamalarında CPU Örneklerini Analiz Etme blog gönderisi.
- Zamanlama Yakalamalarında Durakları ve Bağlam Anahtarlarını analiz
-
Zamanlama Yakalamalarında Bellek Kullanımını ve Performansını Analiz Etme
- Ayrıca kendi özel ayırıcılarınızı da izleyebilirsiniz. Diğer ayrıntılar için başlığın özel ayırıcı yapılan ayırmalar için bellek profili oluşturma desteğiblog gönderisine bakın.
GPU profili oluşturma
Uygulamanız aralıklı çerçeve düşüşleri mi yaşıyor? Aşırı VRAM kullanımı mı? Sistem belleği ile VRAM arasında beklenmeyen sayfalama operasyonları mı var? PIX'teki GPU profil oluşturma özellikleri, bu yaygın ve çözümlenmesi zor durumların en altına inebilmenize yardımcı olabilir.
GPU zamanlamaları
GPU çalışması zamanlama verilerini toplamak için bir yakalama yaparken GPU zamanlamaları seçeneğini etkinleştirin. Zaman Çizelgesi görünümünde, her GPU kuyruğu için şeritler bulabilirsiniz; Şerit Seçiciiçinde, API Kuyrukları sabitlenmiş biçimde hızla etkinleştirebilirsiniz. Bu şeritler birkaç alt alan içerir:
- PIX Olayları (GPU): GPU Çalışmasının hiyerarşik, uygulama tanımlı bölgeleri. Bkz. PixEvents.
- GPU Yürütmeleri: Yürütmeler, API düzeyinde iş gönderimlerine karşılık gelir; örneğin, ExecuteCommandLists aracılığıyla.
- GPU Çalışması: GPU'da gerçekleşen tüm çalışmalar; örneğin, Çizimler, Gönderimler, Kopyalar.
- PIX İşaretçileri (GPU): Uygulama tanımlı işaretçiler. Bkz. PixEvents.
Şeritte bir olay seçtiğinizde, olayın CPU'da nereden kaynaklandığını gösteren oklar görürsünüz. Şerit seçenekleri menüsünde (şerit adının yanındaki dişli simgesi) çeşitli görselleştirme seçenekleri de vardır. tr-TR: En önemlisi, Olayları Düzleştirme ve GPU Çalışmasını Düzleştirme seçenekleri, alanı korumak için varsayılan olarak etkinleştirilmiştir. Ancak, belirli bir kare üzerinde çalışırken tam PIX Olay hiyerarşisini veya GPU İş paralelleştirmesini görmek isteyebilirsiniz.
Bu veriler, Gösterilecek Öğeler açılan listesinde ilgili kategoriyi seçerek Aralık Ayrıntıları görünümü aracılığıyla tablo biçiminde de kullanılabilir.
Sunu ve görüntüleme bilgileri
Vsync'ler ayrı bir Monitör şeridinde işaretçiler olarak görüntülenir ve Diğer kategorisindeki Aralık Ayrıntıları görünümünde yer alır.
GPU belleği ve Direct3D nesneleri
GPU kaynakları seçeneğini etkinleştirin ve yakalama işlemi sırasında Direct3D nesneleri hakkında bilgi toplamak için seçeneğini kullanın. Genel bellek kullanımını graf etmek için Ölçümler görünümünde birkaç sayaç bulabilirsiniz. Bellek kullanımı hedeflerinizi karşılayıp karşılamadığınız hakkında hızlı bir fikir edinmek için çeşitli bütçe satırlarını yapılandırabilirsiniz. İlgi çekici bir alan bulduğunuzda, zaman aralığını seçerek, sağ tıklama bağlam menüsündeki Zaman Çizelgesi Yakınlaştırma görünümünde Aralık Seç'e tıklayarak ve Seçili Zaman Aralığı açılan menüsünü Görünür Aralığı Seçolarak ayarlayarak daha fazla araştırmak isteyebilirsiniz.
ölçümler görünümünde D3D API Nesne Bellek Kullanımını görüntüleme
Bahşiş
Çizgi StiliKare olarak ayarlamak, ayırmaların nerede yapıldığını görmeyi kolaylaştırır.
Aralık Ayrıntıları görünümünde, yığınlar, kaynaklar ve işlem hattı durumu nesneleri gibi Direct3D API nesneleri hakkında çeşitli bilgileri görüntüleyebilirsiniz. Şüpheli nesneleri saptamayı kolaylaştırmak için, bu bilgiler ayrılıp serbest bırakıldıklarına göre gruplandırılır.
Ikamet
İkametle ilgili sorunlar için Residence Operations, Demoted Allocationsve Allocation Migrations kategorilerini Range Detailgörünümünden kontrol edin. Bu işaretleyiciler ve olaylar Residence Operations şeridinde de gösterilir.
İkamet işlemleri, MakeResident ve Çıkarma işlemlerini (Direct3D 12 API ile başlatılan) ve tüm PageIn ve PageOut işlemlerini içerir (Daha fazla ayrıntı için bkz. Residency). Grafik çekirdeği (DXGK) GPU'nuzun VRAM'ında bir kaynak ayıramayınca (bellek baskısı veya parçalanma nedeniyle) indirgenmiş ayırmalar oluşur. Bu durumda DXGK, indirgenmiş ayırmalar için ayırma geçişleri gerçekleştirmeyi de dener. Gpu'ların askıya alınması gerektiğinden bu geçişlerin pahalı işlemler olduğunu unutmayın.
GPU kullanımı ve sunu sayaçları
GPU performansıyla ilgili çeşitli sayaçları içeren Sistem İzleyicisi'nde (sysmon olarak da bilinir) bulunan sayaçları toplamak için yakalama yaparken Capture SysMon sayaçları seçeneğini etkinleştirin. Özellikle, şunlar için sayaçlar vardır:
- GPU kullanımı hem hedef işlem hem de tüm işlemler için GPU altyapısına göre ayrılmıştır.
- Saniye başına kare sayısı (tersi milisaniye olarak, MsBetweenPresents) ve MsUntilRenderComplete (sunum başlangıcı ile GPU işinin tamamlanması arasındaki süre) gibi gösterim verileri.
- Yerel ve yerel olmayan bellek kullanımı, ikamet ve bütçeler de dahil olmak üzere GPU Bellek bilgileri.
Bahşiş
Açıklama görmek için Sistem İzleyicisi'ndeki sayaç adlarının üzerine gelin.
Bu sayaçlar, zamanlama yakalama sırasında veya Sistem İzleyicisi görünümünde sayaç toplamayı başlat düğmesine tıklanarak gerçek zamanlı olarak da izlenebilir. Grafikler yeniden düzenlenebilir ve sayaçlar dinamik olarak eklenebilir veya kaldırılabilir. Kullanılabilir tüm sayaçları görüntülemek için Sayaçlar'ne tıklayın.
Sistem İzleyicisi grafiklerini ve sayaçlarını görüntüleme
Win32 dosya giriş/çıkış sistemi
Win32 Dosya GÇ performansını Zamanlama Yakalamalarıiçinde analiz etme blog gönderisine bakın.
Diğer analiz özellikleri
- İstatistiksel karşılaştırmalar, bir PIX olay hiyerarşisinin hangi bölümlerinin karşılaştırılmakta olan nokta kümesi için istatistiksel olarak farklı sürelere sahip olduğunu belirlemeye yardımcı olur. Ayrıntılar için Zamanlama Yakalama İstatistiksel Karşılaştırma Özellikleriblog gönderisine bakın.
- Performans bütçelerini ayarlamak, yakalamanın sorunlu alanlarını hızla belirlemenize yardımcı olabilir. Daha fazla ayrıntı için Zamanlama Yakalama ölçümleri görünümünde performans bütçelerini kullanmablog gönderisine bakın.
- Ayrıca Zamanlama Yakalamaları'deki Kritik Yol Analizi blog gönderisine bakın.