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.
Windows Performans Sayaçları işlemci, bellek ve disk kullanımı istatistikleri gibi çeşitli sistem verilerini toplamak için tutarlı bir arabirime sahip üst düzey bir soyutlama katmanı sağlar. Sistem yöneticileri performans veya davranış sorunlarını izlemek için performans sayaçlarını kullanır. Yazılım geliştiricileri, bileşenlerinin kaynak kullanımını incelemek için performans sayaçlarını kullanır.
Önemli
Windows Performans Sayaçları, yönetim/tanılama verileri bulma ve toplama için iyileştirilmiştir. Bunlar yüksek frekanslı veri toplama veya uygulama profili oluşturma için uygun değildir çünkü saniyede bir kereden fazla toplanacak şekilde tasarlanmamışlardır. Sistem bilgilerine daha düşük ek yük erişimi için, İşlem Durumu Yardımcısı, GlobalMemoryStatusEx, GetSystemTimesveya GetProcessTimesgibi daha doğrudan API'leri tercih edebilirsiniz. Profil oluşturma için, -critsec
, -dpcisr
, -eflag
veya -ProfileSource
seçenekleriyle tracelog.exe kullanarak sistem profil oluşturma verilerine sahip ETW günlüklerini toplayabilir veyaDonanım Sayacı Profili Oluşturma kullanabilirsiniz.
Not
Windows Performans Sayaçlarını QueryPerformanceCounter API'siyle karıştırmayın. Windows Performans Sayaçları, birçok tür sistem bilgisi için üst düzey bir soyutlama sağlar. QueryPerformanceCounter işlevi, yüksek duyarlıklı bir zaman damgasına en iyi duruma getirilmiş erişim sağlar.
Başlangıç
- Bir sistemden performans verilerini toplamak veya görüntülemek istediğinizde Performans Sayacı Araçları kullanın.
- Yerel sistemden performans verileri toplayan bir betik veya program yazmak istediğinizde Performans Sayacı Koleksiyonu API'lerini kullanın.
- WMI kullanarak yerel veya uzak bir sistemden performans verileri toplamak istediğinizde wmi performans sayacı sınıflarını kullanın.
- Yazılım bileşeninizden performans verilerini yayımlamak istediğinizde Performans Sayacı Sağlayıcısı API'lerini kullanın.
Kavramlar
Windows Performans Sayacı sistemi, tüketiciler, sağlayıcılar, sayaç kümeleri, sayaçlar, örneklerve sayaç değerleriolarak düzenlenmiştir.
tüketici, performans verilerini kullanan bir yazılım bileşenidir. Windows, performans verilerini kullanan birkaç yerleşik araç içerir. Bunlar Görev Yöneticisi, Kaynak İzleyicisi, Performans İzleyicisi, typeperf.exe, logman.exeve relog.exeiçerir. Geliştiriciler, performans sayacı API'leri aracılığıyla performans sayaçlarına erişen betikler ve uygulamalar yazabilir.
sağlayıcı, performans verilerinioluşturan ve yayımlayan bir yazılım bileşenidir. Sağlayıcı, bir veya daha fazlakarşı kümesi için veri yayımlar. Örneğin, bir veritabanı sistemi kendisini performans veri sağlayıcısı olarak kaydedebilir.
-
V1 sağlayıcısı, tüketici sürecinde çalışan bir performans DLL aracılığıyla performans verileri yayımlayan bir yazılım bileşenidir. V1 sağlayıcısı bir
.ini
dosyası aracılığıyla sisteme yüklenir. V1 sağlayıcı mimarisi kullanım dışıdır. Yeni sağlayıcılar V2 sağlayıcı mimarisini kullanmalıdır. -
V2 sağlayıcısı, performans sayacı sağlayıcı API'leri aracılığıyla performans verileri yayımlayan bir yazılım bileşenidir. V2 sağlayıcısı bir
.man
(XML bildirimi) dosyası aracılığıyla sisteme yüklenir.
karşı küme, bir sağlayıcı içindeki performans verilerinin gruplanmasıdır. Bir karşı kümenin bir adı ve bir veya daha fazla sayacıvardır. Bir sayaç kümesinden veri toplamak, örneğinin sayısı olarakdöndürür. Bazı Windows API'lerinde, sayaç setleriperformans nesneleri olarak adlandırılır. Örneğin, bir veritabanı sisteminin performans veri sağlayıcısı veritabanı başına istatistikler için bir karşı küme sağlayabilir.
sayacı, tek parça performans verilerinin tanımıdır. Sayacın adı ve türü vardır. Örneğin, "veritabanı başına istatistikler" sayacı, türü PERF_COUNTER_COUNTER
olan "saniye başına işlem" adlı bir sayaç içerebilir.
örneği, performans verilerinin bildirildiği bir varlıktır. Örnek ismi (dizi) ve bir veya daha fazla sayaç değeriiçerir. Örneğin, "her veritabanı için istatistikler kümesi" sayacı her veritabanı için bir örnek içerebilir. Örnek adı veritabanı adı olur ve her örnek "saniye başına işlemler", "bellek kullanımı" ve "disk kullanımı" sayaçları için sayaç değerleri içerir.
sayaç değeri, tek bir performans sayacı verisi parçasının değeridir. Sayaç değeri, karşılık gelen sayacın türüne bağlı olarak 32 bit veya 64 bit olan işaretsiz bir tamsayıdır. birörneğinden bahsederken sayaç değeri bazen sayacı veya değeriolarak adlandırılabilir.
Bahşiş
Performans sayacı terimlerini daha tanıdık elektronik tablo terimleriyle ilişkilendirmek yararlı olabilir. karşı küme tablo gibidir. sayacı sütun gibidir. örneği satır gibidir. sayaç değeri, tablodaki bir hücre gibidir.
Tek örnekli sayaç kümeleri her zaman tam olarak bir örnek için veri içerir. Bu, sistem genel istatistiklerini raporlayan karşı kümeler için yaygındır. Örneğin, Windows'un genel bellek kullanımını bildiren "Bellek" adlı yerleşik bir tek örnekli karşı kümesi vardır.
Çok örnekli sayaçlar değişken sayıda örneğin verilerini içerir. Bu, sistemdeki varlıklar hakkında rapor veren karşı kümeler için yaygındır. Örneğin, Windows'un yüklü her CPU için bir örnek raporlayan "İşlemci Bilgileri" adlı yerleşik bir çok örnekli karşı kümesi vardır.
Tüketiciler verileri düzenli aralıklarla bir sağlayıcının karşı kümesinden toplar ve kaydeder. Örneğin, tüketici saniyede bir veya dakikada bir veri toplayabilir. Toplanan verilere örnekadı verilir. Örnek, sayaç kümesindeki örnekler için verilerle birlikte zaman damgalarından oluşur. Her örneğin verileri örnek adını (dize) ve bir dizi sayaç değerini (tamsayılar, sayaç kümesindeki her sayaç için bir değer) içerir.
Örnek adları normalde bir örnek içinde benzersiz olmalıdır; örneğin, bir sağlayıcı tek bir örneğin parçası olarak aynı ada sahip iki örneği döndürmemelidir. Bazı eski sağlayıcılar bu kurala uymaz, bu nedenle tüketicilerinbenzersiz olmayan örnek adlarını tolere edebilmesi gerekir. Örnek adları büyük/küçük harfe duyarlı değildir, bu nedenle örneklerin yalnızca büyük/küçük harfe göre farklı adları olmamalıdır.
Not
Geriye dönük uyumluluk nedeniyle, "İşlem" karşı kümesi EXE dosya adını temel alan benzersiz olmayan örnek adlarını döndürür. Bu, özellikle benzersiz olmayan bir ada sahip bir işlem başlatıldığında veya kapatıldığında kafa karıştırıcı sonuçlara neden olabilir, çünkü bu genellikle örnekler arasında örnek adlarının yanlış eşleşmesi nedeniyle veri hatalarına neden olur. "İşlem" karşı kümesinin tüketicileri bu benzersiz olmayan örnek adlarını ve sonuçta ortaya çıkan veri hatalarını tolere edebilmelidir.
Windows 11 ve sonraki sürümlerde, bu sorunu önlemek için Process V2
karşı setini kullanabilirsiniz.
Örnek adları örnekler arasında kararlı olmalıdır; örneğin bir sağlayıcı, karşı küme her toplandığında aynı varlık için aynı örnek adını kullanmalıdır.
Her sayacın bir türü vardır. Sayaç türü, sayacın ham değeri türünü gösterir (işaretsiz 32 bit tamsayı veya işaretsiz 64 bit tamsayı). Sayaç türü ayrıca sayacın ham değerinin neyi temsildiğini belirtir ve bu da yararlı istatistikler oluşturmak için ham değerin nasıl işlenmesi gerektiğini belirler.
Bazı sayaç türleri basit olsa da ve doğrudan yararlı olan bir ham değere sahip olsa da, birçok sayaç türü yararlıbiçimlendirilmiş bir değer oluşturmak için ek işleme gerektirir. Biçimlendirilmiş değeri üretmek için bazı sayaç türleri iki örnekten ham değerler gerektirir, bazı sayaç türleri zaman damgaları gerektirir ve bazı sayaç türleri birden çok sayaçtan ham değerler gerektirir. Örneğin:
-
PERF_COUNTER_LARGE_RAWCOUNT
, hiçbir işlemin yararlı olmasını gerektirmeyen 64 bit ham bir değerdir. "Kullanımda olan bellek baytları gibi belirli bir anlık değerler için uygundur." -
PERF_COUNTER_RAWCOUNT_HEX
, yalnızca basit onaltılık biçimlendirmenin yararlı olmasını gerektiren 32 bit ham bir değerdir. Belirli bir zamana veya "Bayraklar" ya da "Temel Adres" gibi bilgileri tanımlamak için uygundur. -
PERF_COUNTER_BULK_COUNT
, olay sayısını gösteren ve olayların gerçekleşme hızını hesaplamak için kullanılan 64 bit ham değerdir. Yararlı olması için bu sayaç türü, zaman içinde ayrılmış iki örnek gerektirir. Biçimlendirilmiş değer olay hızıdır; örneğin, iki örnek arasındaki aralık boyunca olayın saniye başına kaç kez gerçekleştiğidir.s0
ves1
iki örnek verildiğinde, biçimlendirilmiş değer (olay hızı)(s1.EventCount - s0.EventCount)/(s1.TimestampInSeconds - s0.TimestampInSeconds)
olarak hesaplanır.
Sağlayıcıların durum bilgisi yok gibi davranması beklenir; örneğin bir karşı kümeden veri toplamak sağlayıcının durumunu gözle görülür şekilde etkilememelidir. Örneğin, bir sağlayıcı bir karşı küme toplandığında sayaç değerlerini 0 olarak sıfırlamamalı ve geçerli koleksiyondaki değerleri ayarlamak için önceki koleksiyonun zaman damgasını kullanmamalıdır. Bunun yerine, tüketicinin ham değerlere ve zaman damgalarına göre yararlı istatistikleri hesaplayabilmesi için doğru türlere sahip basit ham sayaç değerleri sağlamalıdır.
Performans API'si Mimarisi
Performans sayacı tüketicileri şunları içerir:
- Görev Yöneticisi, Kaynak İzleyicisi, Performans İzleyicisi ve typeperf.exegibi Microsoft tarafından sağlanan uygulamalar .
- Microsoft tarafından sağlanan yüksek seviyeli API'ler, WMI Performans Sınıflarıgibi performans sayacı verilerini kullanıma sunar.
- performans sayacı tüketici API'lerini kullanan kendi uygulamalarınız veya betikleriniz.
Performans sayacı tüketicilerinin çoğu performans verilerini toplamak için PDH.dll API'lerini kullanır. PDH, sorguları ayrıştırma, birden çok örnek arasında örnekleri eşleştirme ve ham sayaç verilerinden biçimlendirilmiş değerleri hesaplama gibi performans sayaçlarını toplamanın birçok karmaşık yönünü yönetir. PDH uygulaması, bir V1 sağlayıcısından veri kullanırken kayıt defteri API'lerini ve bir V2 sağlayıcısından veri kullanırken V2 tüketici API'lerini kullanır.
Bazı eski performans sayacı tüketicileri, özel HKEY_PERFORMANCE_DATA
kayıt defteri anahtarından performans verilerini toplamak için kayıt defteri API'lerini kullanır. Kayıt defterinden verilerin işlenmesi karmaşık ve hataya açık olduğundan, bu yeni kod için önerilmez. Kayıt defteri API'si uygulaması, V1 sağlayıcılarından veri toplamayı doğrudan destekler. Dolaylı olarak V2 tüketici API'lerini kullanan bir çeviri katmanı aracılığıyla V2 sağlayıcılarından veri toplamayı destekler.
Bazı performans sayacı tüketicileri V2 sağlayıcılarından verilere doğrudan erişmek için PerfLib V2 Tüketici işlevlerini kullanır. Bu, PDH API'lerini kullanarak veri kullanmaktan daha karmaşıktır, ancak performans veya bağımlılık endişeleri nedeniyle PDH API'lerinin kullanılamaması durumunda bu yaklaşım yararlı olabilir. PerfLib V2 uygulaması, V2 sağlayıcılarından veri toplamayı doğrudan destekler. V1 sağlayıcılarından veri toplamayı desteklemez.
Not
Windows OneCore PDH.dll içermez ve kayıt defteri API'leri aracılığıyla performans sayacı verilerini kullanma desteği içermez. OneCore üzerinde çalışan tüketicilerin PerfLib V2 Tüketici işlevlerini kullanması gerekir.
V1 sağlayıcıları, tüketici işlemine yüklenen bir sağlayıcı DLL'i olarak uygulanır. Kayıt defteri API'si uygulaması, sağlayıcı DLL'sinin yüklenmesini, performans verilerini toplamak için DLL'ye çağrılması ve DLL'nin uygun şekilde kaldırılmasını yönetir. Sağlayıcı DLLperformans verilerinin uyguntoplanmasından sorumludur; örneğin normal Windows API'leri, RPC, adlandırılmış kanallar, paylaşılan bellek veya diğer işlemler arası iletişim mekanizmaları kullanılır.
V2 sağlayıcıları, kullanıcı modu programı (genellikle bir Windows hizmeti) veya çekirdek modu sürücüsü olarak uygulanır. Genellikle performans veri sağlayıcısı kodu doğrudan mevcut bir bileşenle tümleştirilir (örneğin, sürücü veya hizmet kendisi hakkında istatistikler bildirmektedir). PerfLib V2 uygulaması, istekleri ve yanıtları PCW.sys çekirdek uzantısı aracılığıyla yönetir, bu nedenle sağlayıcının performans verilerini sağlamak için genellikle herhangi bir işlemler arası iletişim uygulaması gerekmez.
Not
Windows Performans Sayacı API'leri ve araçları, Uzak Kayıt Defteri (V1 sağlayıcıları için) ve RPC (V2 sağlayıcıları için) aracılığıyla diğer makinelerden performans sayaçlarına erişim için sınırlı destek içerir. Bu desteğin kimlik doğrulama denetimleri (araçlar ve API'ler yalnızca geçerli kullanıcı olarak kimlik doğrulaması yapabilir) ve sistem yapılandırma (gerekli uç noktalar ve hizmetler varsayılan olarak devre dışı bırakılmıştır) açısından kullanılması genellikle zordur. Çoğu durumda, yerleşik uzaktan erişim desteği yerine WMI aracılığıyla uzak sistemlerin performans sayaçlarına erişmek daha iyidir.
Geliştirici hedef kitlesi
Performans sayaçları genellikle yöneticiler tarafından sistemlerin performans sorunlarını veya anormal davranışlarını belirlemek için, geliştiriciler tarafından yazılım bileşenlerinin kaynak kullanımını incelemek için ve programların sistemlerinde nasıl çalıştığını anlamak için bireysel kullanıcılar tarafından kullanılır. Kullanım, Görev Yöneticisi veya Performans İzleyicisi gibi GUI araçları, typeperf.exe veya logman.exegibi komut satırı araçları, WMI ve PowerShell aracılığıyla betik oluşturma veya C/C++ ve .NET API'leri aracılığıyla gerçekleşebilir.
Performans sayacı sağlayıcıları genellikle çekirdek modu sürücüleri veya kullanıcı modu hizmetleri olarak uygulanır. Performans sayacı sağlayıcıları genellikle C veya C++ dilinde yazılır.
Çalışma zamanı gereksinimleri
Belirli bir programlama öğesinin çalışma zamanı gereksinimleri hakkında bilgi için, bu öğenin başvuru sayfasının Gereksinimler bölümüne bakın.
Sürüm geçmişi için bkz. Yenilikler.