Tóm tắt

Frame Timing Manager giúp một dự án Unity thu thập và đọc thông tin thời gian khung hình trong phạm vi công cụ, API và nền tảng được hỗ trợ. Công cụ không biến mọi thiết bị thành một phép đo có định nghĩa giống nhau; khi so sánh, cần công bố phiên bản Unity, nền tảng và nguồn timing.

Điểm chính

  1. Frame Timing Manager liên quan đến dữ liệu frame timing và profiler của Unity, nhưng phạm vi đo phụ thuộc nền tảng được hỗ trợ. [1]
  2. FrameTiming API định nghĩa các trường dữ liệu của Unity; các trường này không tự trở thành chuẩn phổ quát cho engine khác. [2]
  3. Khác biệt ở phiên bản, thiết bị, cách lấy mẫu và trường dữ liệu có thể khiến hai giá trị cùng tên không tương đương.
  4. Báo cáo so sánh nên nêu build Unity, nền tảng, phần cứng, API hoặc công cụ ghi nhận và giới hạn dữ liệu.

Công cụ Unity trả lời câu hỏi trong phạm vi Unity

Frame Timing Manager là một phần trong hệ thống đo và phân tích thời gian khung hình của Unity. Nó hỗ trợ nhà phát triển xem dữ liệu có liên quan đến CPU, GPU và frame trong điều kiện mà nền tảng cùng phiên bản Unity cung cấp. Điều đó rất hữu ích khi điều tra một dự án, nhưng không có nghĩa mọi thiết bị đều trả về cùng các trường hoặc tính chúng theo cùng một đường. Cần bắt đầu bằng tài liệu của phiên bản đang dùng và xác định API nào tạo ra số liệu.

Illustration: Công cụ Unity trả lời câu hỏi trong Decorative illustration for the section "Công cụ Unity trả lời câu hỏi trong"; visual only, carries no data.

Tài liệu Unity mô tả Frame Timing Manager, mối liên hệ với profiler và các giới hạn theo nền tảng. Vì vậy, nếu một trường không có trên máy nào đó, không nên tự điền bằng không hoặc giả định thiết bị không mất thời gian xử lý; trước hết cần xác minh trạng thái hỗ trợ và dữ liệu thực sự được trả về. [1] Một công cụ có thể cung cấp thông tin hữu ích trong cấu hình cụ thể mà không đảm bảo có mặt trên mọi nền tảng.

Tên trường không tự tạo ra định nghĩa chung

FrameTiming API mô tả các trường timing theo định nghĩa của Unity. Những tên gọi CPU, GPU hay frame có ý nghĩa trong cấu trúc dữ liệu và cách sử dụng mà API tài liệu hóa; không thể mặc định rằng chỉ số cùng tên từ một engine, hệ điều hành hoặc công cụ vendor có cùng điểm bắt đầu, điểm kết thúc và cách tổng hợp. [2] Trước khi ghép hai tập dữ liệu, hãy xác nhận trường đo cái gì, đơn vị nào, khoảng thời gian nào và liệu giá trị là thời lượng hay mốc thời gian.

Ngay cả trong cùng một dự án, mức tải thay đổi theo cảnh, độ phân giải, giới hạn tốc độ khung hình, driver và trạng thái thiết bị. Nếu so sánh hai máy, cần chạy cùng build và workload phù hợp, lặp lại phép đo và ghi điều kiện. Không gọi kết quả là “chuẩn giữa thiết bị” nếu chưa xác định quy trình và tính tương đương của metric. Một công cụ đo giúp quan sát, không tự chuẩn hóa mọi khác biệt.

Chọn cách ghi nhận và giải thích giới hạn

Trước tiên, ghi phiên bản Unity, nền tảng, cấu hình build và thiết bị. Sau đó nêu Frame Timing Manager hay API nào được dùng, các trường thu được, chu kỳ lấy mẫu và thời đoạn capture. Nếu dữ liệu đến từ profiler, ghi trạng thái công cụ và những kênh hoặc tùy chọn đã bật. Điều này giúp người đọc hiểu liệu dữ liệu bị thiếu do nền tảng, cấu hình capture hay ứng dụng không tạo ra trường tương ứng.

Illustration: Chọn cách ghi nhận và giải thích Decorative illustration for the section "Chọn cách ghi nhận và giải thích"; visual only, carries no data.

Tài liệu Unity về FrameTiming API là căn cứ để diễn giải trường trong đúng API; nó không chứng minh rằng số liệu có thể đối chiếu trực tiếp với mọi nền tảng hoặc phần cứng. [2] Nếu nền tảng chỉ hỗ trợ một phần, báo cáo phần quan sát được và ghi rõ trường không có. Không thay giá trị thiếu bằng 0, cũng không âm thầm loại bỏ máy không có dữ liệu nếu điều đó làm thay đổi kết luận.

So sánh có kiểm soát thay vì tuyên bố chuẩn hóa

Một phép so sánh thực tế nên định nghĩa câu hỏi trước: cần so thời lượng CPU của một đoạn cụ thể, thời gian GPU được báo cáo hay tốc độ khung hình nhìn thấy? Các câu hỏi khác nhau có thể cần công cụ và điểm đo khác nhau. Giữ workload và thiết lập gần tương đương, ghi phiên bản ứng dụng, lặp lại và báo cáo phân bố thay vì chỉ chọn lượt đẹp nhất. Khi khác nền tảng, mô tả khác biệt như một giới hạn của phép so sánh, không che giấu bằng một nhãn chung.

Nếu số đo thay đổi giữa các lần, giữ lại log và kiểm tra điều kiện chạy, thay vì suy ra một máy luôn nhanh hơn. Nêu rõ liệu công cụ đo ở build phát triển hay build phát hành; instrumentation có thể làm thay đổi điều kiện so với trải nghiệm cuối. Khi cần kết luận rộng, cần nhiều workload và phương pháp độc lập, không chỉ một màn hình profiler.

Người đọc có thể xem tỷ số các trận đấu trực tiếp trên KLIVE để tham khảo nội dung thể thao; đây không phải nguồn cho API Unity. Trong báo cáo kỹ thuật, dẫn tài liệu Unity tương ứng và tránh gọi Frame Timing Manager là chuẩn chung cho mọi thiết bị. Kết luận chính xác hơn là: công cụ cung cấp các phép đo có ích trong môi trường Unity được hỗ trợ, còn việc đối chiếu ngoài phạm vi đó đòi hỏi định nghĩa và kiểm tra bổ sung.

Khi cần tìm hiểu thêm nội dung thể thao sau chủ đề kỹ thuật, bạn có thể tham khảo Trang KLIVE về tỷ số các trận đấu trực tiếp; hãy kiểm tra thông tin hiển thị tại thời điểm truy cập.

Nguồn tham khảo

  1. Unity — Frame timing manager introduction
  2. Unity — FrameTiming API

Câu hỏi thường gặp

Frame Timing Manager có áp dụng giống nhau trên mọi thiết bị không?

Không nên giả định vậy. Khả năng cung cấp dữ liệu phụ thuộc nền tảng và cấu hình. Hãy kiểm tra tài liệu Unity cho đúng phiên bản và thiết bị.

Có thể so trường GPU time từ Unity với công cụ khác không?

Chỉ sau khi xác nhận định nghĩa, điểm đo, đơn vị và cách lấy mẫu tương đương. Cùng tên trường không đảm bảo cùng phép đo.

Dữ liệu timing không xuất hiện có nghĩa là thời gian bằng không?

Không. Trường có thể không được hỗ trợ hoặc không được cung cấp trong lần capture. Hãy ghi trạng thái thực tế thay vì thay bằng số không.