มีหลายสถานการณ์ที่คอลเล็กชันโปรไฟล์อาจไม่เป็นไปตามที่คาดไว้ ดังนี้
- การรวบรวมโปรไฟล์ล้มเหลวเนื่องจากเกิดข้อผิดพลาดภายใน หากเกิดกรณีนี้ขึ้น API ของ
ProfilingResult
จะแจ้งให้คุณทราบเกี่ยวกับข้อผิดพลาด - การรวบรวมโปรไฟล์ไม่สำเร็จเนื่องจากมีการจำกัดอัตรา ดูข้อมูลเพิ่มเติมได้ที่ วิธีการทำงานของการจำกัดอัตรา
- การรวบรวมโปรไฟล์สำเร็จ แต่แอปจะไม่ได้รับการแจ้งเตือนทันที
ซึ่งอาจเกิดขึ้นได้หากแอปขัดข้องระหว่างการรวบรวมโปรไฟล์เป็นเวลานาน หาก
แอปปิดลง ระบบจะหยุดและบันทึกโปรไฟล์โดยอัตโนมัติ แอปจะได้รับแจ้งเกี่ยวกับโปรไฟล์ที่รวบรวมเมื่อรีสตาร์ทและลงทะเบียน Listener ทั่วไปด้วย
ProfilingManager
วิธีการทำงานของการจำกัดอัตรา
ProfilingManager
มีตัวจำกัดอัตราสำหรับทั้งแอปแต่ละแอปและทั้งระบบ
ตัวจำกัดอัตราจะป้องกันไม่ให้แอปใช้ทรัพยากรระบบมากเกินไปโดยการบันทึกโปรไฟล์มากเกินไป เนื่องจากเซสชันการทำโปรไฟล์แบบเต็มจะใช้ทรัพยากรจำนวนมาก
ทั้งตัวจำกัดอัตราของแอปและระบบจะกำหนดต้นทุนให้กับโปรไฟล์แต่ละประเภท ที่รวบรวม เนื่องจากโปรไฟล์บางประเภทใช้ทรัพยากรมากกว่าโปรไฟล์อื่นๆ ตัวจำกัดแอปจะควบคุมจำนวนที่แอปแต่ละแอปบันทึกได้โดยอิงตามต้นทุนรวม อย่างไรก็ตาม ตัวจำกัดของระบบจะควบคุมต้นทุนรวมของโปรไฟล์ทั้งหมด ที่บันทึกโดยแอปทั้งหมด
เครื่องมือจำกัดอัตราจะกำหนดต้นทุนรวมที่แต่ละแอปใช้ได้ (ต้นทุนนี้จะเหมือนกัน สำหรับทุกแอป) แต่ละโปรไฟล์จะใช้ส่วนหนึ่งของค่าใช้จ่ายทั้งหมดนี้ โดยขึ้นอยู่กับประเภทของโปรไฟล์
เครื่องมือจำกัดอัตราจะใช้ระยะเวลา 3 ช่วง ได้แก่
- ต่อชั่วโมง: มีต้นทุนสูงสุดที่อนุญาตต่อชั่วโมง
- ต่อวัน: มีต้นทุนสูงสุดที่อนุญาตต่อวัน
- ต่อสัปดาห์: มีค่าใช้จ่ายสูงสุดที่อนุญาตต่อสัปดาห์
เครื่องมือจำกัดอัตราจะกำหนดต้นทุนรวมที่ใช้ได้ภายในแต่ละช่วงเวลา
เหล่านี้ เช่น แอปอาจได้รับอนุญาตให้บันทึกโปรไฟล์ X ต่อชั่วโมง Y ต่อวัน และ Z ต่อสัปดาห์ หากแอปของคุณใช้งานถึงขีดจำกัดในช่วงเวลาใดก็ตาม
คำขอโปรไฟล์ในอนาคตจะทำให้เกิดERROR_FAILED_RATE_LIMIT_PROCESS
ข้อผิดพลาด
ระยะเวลาเหล่านี้จะทำงานคล้ายกันสำหรับการจำกัดอัตราที่ระดับระบบ อย่างไรก็ตาม ตัวจำกัดอัตราของระบบเป็นขีดจำกัดส่วนกลางที่แอปทั้งหมดใช้ร่วมกัน ระบบจะกำหนดขีดจำกัดนี้
แยกจากโควต้าของแอปแต่ละรายการ แต่ทุกโปรไฟล์จะมีส่วนร่วมในขีดจำกัดนี้
โดยใช้ช่วงเวลาเป็นรายชั่วโมง รายวัน และรายสัปดาห์เดียวกัน หากถึงขีดจำกัดส่วนกลางนี้ คุณจะได้รับข้อผิดพลาด ERROR_FAILED_RATE_LIMIT_SYSTEM