Profil oluşturma sınırlamaları

Profil koleksiyonunun beklendiği gibi gitmemesine neden olabilecek çeşitli durumlar vardır:

  • Profil koleksiyonu dahili bir hata nedeniyle başarısız oluyor. Bu durumda ProfilingResult API, hatalar hakkında sizi bilgilendirir.
  • Profil toplama işlemi, sıklık sınırlaması nedeniyle başarısız oluyor. Daha fazla bilgi için Hız sınırlamasının işleyiş şekli başlıklı makaleyi inceleyin.
  • Profil toplama işlemi başarılı olur ancak uygulamaya hemen bildirim gönderilmez. Bu durum, uygulama uzun profil toplama işlemleri sırasında kilitlendiğinde ortaya çıkabilir. Uygulama kapanırsa sistem, profili otomatik olarak durdurur ve kaydeder. Uygulama, yeniden başlatıldığında toplanan profil hakkında bilgilendirilir ve ProfilingManager ile genel bir işleyici kaydeder.

Sıklık sınırlamasının işleyiş şekli

ProfilingManager hem tek tek uygulamalar hem de sistemin tamamı için bir hız sınırlayıcı içerir. Hız sınırlayıcı, tam bir profil oluşturma oturumu çok fazla kaynak kullandığından uygulamaların çok fazla profil kaydederek çok fazla sistem kaynağı kullanmasını engeller.

Hem uygulama hem de sistem hız sınırlayıcıları, toplanan her profil türüne bir maliyet atar. Bunun nedeni, bazı profillerin diğerlerinden daha fazla kaynak yoğun olmasıdır. Uygulama sınırlayıcı, toplam maliyetine göre tek bir uygulamanın ne kadar kayıt yapabileceğini kontrol eder. Ancak sistem sınırlayıcı, tüm uygulamalar tarafından kaydedilen tüm profillerin toplam maliyetini kontrol eder.

Hız sınırlayıcı, her uygulamanın kullanabileceği toplam maliyeti belirler (bu maliyet tüm uygulamalar için aynıdır). Her profil, türüne bağlı olarak bu toplam maliyetin bir kısmını kullanır.

Hız sınırlayıcı üç zaman aralığı kullanır:

  • Saatlik: Saat başına izin verilen maksimum maliyet vardır.
  • Günlük: Günlük izin verilen maksimum maliyet vardır.
  • Haftalık: Haftalık olarak izin verilen maksimum maliyet vardır.

Hız sınırlayıcı, bu dönemlerin her birinde kullanılabilecek toplam maliyeti belirler. Örneğin, bir uygulamanın saatte X, günde Y ve haftada Z profil kaydetmesine izin verilebilir. Uygulamanız bu dönemlerden herhangi birinde sınırına ulaşırsa gelecekteki profil istekleri ERROR_FAILED_RATE_LIMIT_PROCESS hatasıyla sonuçlanır.

Bu süreler, sistem düzeyinde sıklık sınırlama için de benzer şekilde çalışır. Ancak sistem hız sınırlayıcısı, tüm uygulamalar tarafından paylaşılan genel bir sınırdır. Bu sınır, tek tek uygulama kotalarından ayrı olarak belirlenir ancak her profil, saatlik, günlük ve haftalık aynı dönemleri kullanarak bu sınıra katkıda bulunur. Bu genel sınıra ulaşılırsa ERROR_FAILED_RATE_LIMIT_SYSTEM hatasını alırsınız.