Giới hạn về việc lập hồ sơ

Có nhiều trường hợp mà bộ sưu tập hồ sơ có thể không hoạt động như mong đợi:

  • Không thu thập được hồ sơ do lỗi nội bộ. Nếu điều này xảy ra, API ProfilingResult sẽ cho bạn biết về các lỗi.
  • Không thu thập được hồ sơ do giới hạn về tốc độ. Để biết thêm thông tin, hãy xem bài viết Cách hoạt động của tính năng giới hạn tốc độ
  • Quá trình thu thập hồ sơ diễn ra thành công, nhưng ứng dụng không được thông báo ngay lập tức. Điều này có thể xảy ra nếu ứng dụng gặp sự cố trong quá trình thu thập hồ sơ dài. Nếu ứng dụng đóng, hệ thống sẽ tự động dừng và lưu hồ sơ. Ứng dụng được thông báo về hồ sơ đã thu thập khi khởi động lại và đăng ký một trình nghe chung bằng ProfilingManager.

Cách hoạt động của tính năng giới hạn tốc độ

ProfilingManager bao gồm một bộ hạn chế tốc độ cho cả các ứng dụng riêng lẻ và toàn bộ hệ thống. Bộ hạn chế tốc độ ngăn các ứng dụng sử dụng quá nhiều tài nguyên hệ thống bằng cách ghi quá nhiều hồ sơ, vì một phiên phân tích hiệu suất đầy đủ sẽ sử dụng rất nhiều tài nguyên.

Cả bộ giới hạn tốc độ ứng dụng và hệ thống đều chỉ định một chi phí cho từng loại hồ sơ được thu thập, vì một số hồ sơ sử dụng nhiều tài nguyên hơn các hồ sơ khác. Bộ giới hạn ứng dụng kiểm soát lượng dữ liệu mà một ứng dụng riêng lẻ có thể ghi lại dựa trên tổng chi phí của ứng dụng đó. Tuy nhiên, bộ giới hạn hệ thống sẽ kiểm soát tổng chi phí của tất cả các hồ sơ do tất cả các ứng dụng ghi lại.

Bộ điều chỉnh tốc độ đặt tổng chi phí mà mỗi ứng dụng có thể sử dụng (chi phí này giống nhau đối với tất cả các ứng dụng). Mỗi hồ sơ sẽ sử dụng một phần trong tổng chi phí này, tuỳ thuộc vào loại hồ sơ.

Bộ hạn chế tốc độ sử dụng 3 khoảng thời gian:

  • Mỗi giờ: Có một chi phí tối đa được phép mỗi giờ.
  • Mỗi ngày: Có một chi phí tối đa được phép mỗi ngày.
  • Mỗi tuần: Có một chi phí tối đa được phép mỗi tuần.

Bộ giới hạn tốc độ đặt tổng chi phí có thể sử dụng trong mỗi khoảng thời gian này. Ví dụ: một ứng dụng có thể được phép ghi X hồ sơ mỗi giờ, Y mỗi ngày và Z mỗi tuần. Nếu ứng dụng của bạn đạt đến giới hạn trong bất kỳ khoảng thời gian nào trong số này, thì các yêu cầu về hồ sơ trong tương lai sẽ dẫn đến lỗi ERROR_FAILED_RATE_LIMIT_PROCESS.

Các khoảng thời gian này hoạt động tương tự đối với việc giới hạn tốc độ ở cấp hệ thống. Tuy nhiên, bộ giới hạn tốc độ của hệ thống là một giới hạn chung mà tất cả các ứng dụng đều dùng chung. Hạn mức này được đặt riêng với hạn mức của từng ứng dụng, nhưng mọi hồ sơ đều đóng góp vào hạn mức này, sử dụng cùng khoảng thời gian theo giờ, theo ngày và theo tuần. Nếu đạt đến giới hạn chung này, bạn sẽ nhận được lỗi ERROR_FAILED_RATE_LIMIT_SYSTEM.