Ada beberapa situasi saat pengumpulan profil mungkin tidak berjalan seperti yang diharapkan:
- Pengumpulan profil gagal karena error internal. Jika hal ini terjadi, API
ProfilingResult
akan memberi tahu Anda tentang error tersebut. - Pengumpulan profil gagal karena pembatasan kecepatan. Untuk mengetahui informasi selengkapnya, lihat Cara kerja pembatasan kecepatan.
- Pengumpulan profil berhasil, tetapi aplikasi tidak langsung diberi tahu.
Hal ini dapat terjadi jika aplikasi error selama pengumpulan profil yang panjang. Jika
aplikasi ditutup, sistem akan otomatis menghentikan dan menyimpan profil. Aplikasi akan
diberi tahu tentang profil yang dikumpulkan saat dimulai ulang dan mendaftarkan
pemroses umum dengan
ProfilingManager
.
Cara kerja pembatasan kecepatan
ProfilingManager
mencakup pembatas kecepatan untuk setiap aplikasi dan seluruh sistem. Pembatas kecepatan mencegah aplikasi menggunakan terlalu banyak resource sistem dengan merekam terlalu banyak profil, karena sesi pembuatan profil lengkap menggunakan banyak resource.
Pembatasan kapasitas aplikasi dan sistem menetapkan biaya untuk setiap jenis profil yang dikumpulkan, karena beberapa profil lebih banyak menggunakan resource dibandingkan yang lain. Pembatas aplikasi mengontrol jumlah yang dapat direkam oleh setiap aplikasi berdasarkan total biayanya. Namun, pembatas sistem mengontrol total biaya semua profil yang direkam oleh semua aplikasi.
Pembatas kapasitas menetapkan total biaya yang dapat digunakan setiap aplikasi (biaya ini sama untuk semua aplikasi). Setiap profil menggunakan sebagian dari total biaya ini, bergantung pada jenisnya.
Pembatasan kapasitas menggunakan tiga jangka waktu:
- Per Jam: Ada biaya maksimum yang diizinkan per jam.
- Per Hari: Ada biaya maksimum yang diizinkan per hari.
- Per Minggu: Ada biaya maksimum yang diizinkan per minggu.
Pembatas kapasitas menetapkan total biaya yang dapat digunakan dalam setiap periode ini. Misalnya, aplikasi mungkin diizinkan untuk merekam X profil per jam, Y per hari, dan Z per minggu. Jika aplikasi Anda mencapai batasnya dalam salah satu periode ini, permintaan profil berikutnya akan menghasilkan error ERROR_FAILED_RATE_LIMIT_PROCESS
.
Periode waktu ini berfungsi serupa untuk pembatasan frekuensi tingkat sistem. Namun, pembatasan kapasitas sistem adalah batas global yang digunakan bersama oleh semua aplikasi. Batas ini ditetapkan
secara terpisah dari kuota aplikasi individual, tetapi setiap profil berkontribusi terhadap batas ini,
menggunakan periode per jam, harian, dan mingguan yang sama. Jika batas global ini tercapai, Anda akan menerima error ERROR_FAILED_RATE_LIMIT_SYSTEM
.