Game time, frame time và GPU time có thể mô tả những phần việc khác nhau của một frame; chúng không mặc nhiên là các đoạn tuần tự để cộng thành tổng. Cách đọc an toàn là xác định mỗi con số thuộc track, bộ đếm và quy ước nào, rồi đối chiếu tài liệu của công cụ. Epic CSV Profiler trình bày các chỉ số frame và nhóm GameThread, RenderThread, GPU trong bối cảnh Unreal; phiên bản tài liệu được dẫn là UE 4.27 và có ghi chú giới hạn của build.
Điểm chínhGame time, frame time và GPU time có thể mô tả những phần việc khác nhau của một frame; chúng không mặc nhiên là các đoạn tuần tự để cộng thành tổng. Cách đọc an toàn là xác định mỗi con số thuộc track, bộ đếm và quy ước nào, rồi đối chiếu tài liệu của công cụ. Epic CSV Profiler trình bày các chỉ số frame và nhóm GameThread, RenderThread, GPU trong bối cảnh Unreal; phiên bản tài liệu được dẫn là UE 4.27 và có ghi chú giới hạn của build. [1] · Trước khi so sánh, ghi lại tên trường nguyên văn, đơn vị, phiên bản engine và cách dữ liệu được xuất. “Game time” có thể phản ánh phần đo gắn với game thread; “GPU time” liên quan công việc GPU được profiler ghi; “frame time” là thời gian quan sát theo định nghĩa của công cụ. Không nên suy ra từ tên gọi rằng các bộ đếm có cùng điểm bắt đầu, cùng kết thúc hoặc cùng cách tổng hợp. CSV Profiler cung cấp nhóm thống kê và cách tiếp cận đo frame trong engine, nhưng đó không biến mọi cột thành một phương trình chung áp dụng cho mọi dự án. [1] · CPU có thể chuẩn bị công việc trong khi GPU xử lý công việc đã gửi trước đó. Vì thế hai khoảng thời gian có thể giao nhau. Nếu cộng toàn bộ thời gian CPU với GPU trong tình huống này, phần giao nhau bị tính hai lần; kết quả không còn đại diện cho thời lượng thực đã trôi qua. Một frame cũng có thể bị giới hạn bởi khâu khác nhau tùy cảnh, đồng bộ hoặc cách lấy mẫu. Hãy dùng timeline khi cần biết thứ tự và phần giao nhau, thay vì dựa riêng vào bảng tổng hợp. · Một: kiểm tra cùng build và cùng cảnh có được dùng ở hai phép đo không. Hai: xác nhận bộ đếm có cùng đơn vị và cùng cách lấy mẫu hay không. Ba: xem liệu các track chạy song song hay nối tiếp. Nếu bảng chỉ đưa ra một giá trị đại diện, đừng suy ra phân bố từng frame hoặc độ trễ đầu-cuối mà bảng không mô tả. Khi có nhiều mẫu, lưu cả khoảng dao động và điều kiện chạy, không chỉ chọn giá trị tốt nhất. Sự khác biệt do logging, instrumentation hoặc cấu hình build có thể làm so sánh sai lệch.
1. Không cộng các số chỉ vì cùng đơn vị
Game time, frame time và GPU time có thể mô tả những phần việc khác nhau của một frame; chúng không mặc nhiên là các đoạn tuần tự để cộng thành tổng. Cách đọc an toàn là xác định mỗi con số thuộc track, bộ đếm và quy ước nào, rồi đối chiếu tài liệu của công cụ. Epic CSV Profiler trình bày các chỉ số frame và nhóm GameThread, RenderThread, GPU trong bối cảnh Unreal; phiên bản tài liệu được dẫn là UE 4.27 và có ghi chú giới hạn của build. [1]
2. Bắt đầu bằng định nghĩa của từng chỉ số
Trước khi so sánh, ghi lại tên trường nguyên văn, đơn vị, phiên bản engine và cách dữ liệu được xuất. “Game time” có thể phản ánh phần đo gắn với game thread; “GPU time” liên quan công việc GPU được profiler ghi; “frame time” là thời gian quan sát theo định nghĩa của công cụ. Không nên suy ra từ tên gọi rằng các bộ đếm có cùng điểm bắt đầu, cùng kết thúc hoặc cùng cách tổng hợp. CSV Profiler cung cấp nhóm thống kê và cách tiếp cận đo frame trong engine, nhưng đó không biến mọi cột thành một phương trình chung áp dụng cho mọi dự án. [1]
3. Hiểu chồng lấp trong pipeline
CPU có thể chuẩn bị công việc trong khi GPU xử lý công việc đã gửi trước đó. Vì thế hai khoảng thời gian có thể giao nhau. Nếu cộng toàn bộ thời gian CPU với GPU trong tình huống này, phần giao nhau bị tính hai lần; kết quả không còn đại diện cho thời lượng thực đã trôi qua. Một frame cũng có thể bị giới hạn bởi khâu khác nhau tùy cảnh, đồng bộ hoặc cách lấy mẫu. Hãy dùng timeline khi cần biết thứ tự và phần giao nhau, thay vì dựa riêng vào bảng tổng hợp.
4. Ba phép đối chiếu trước khi kết luận
Một: kiểm tra cùng build và cùng cảnh có được dùng ở hai phép đo không. Hai: xác nhận bộ đếm có cùng đơn vị và cùng cách lấy mẫu hay không. Ba: xem liệu các track chạy song song hay nối tiếp. Nếu bảng chỉ đưa ra một giá trị đại diện, đừng suy ra phân bố từng frame hoặc độ trễ đầu-cuối mà bảng không mô tả. Khi có nhiều mẫu, lưu cả khoảng dao động và điều kiện chạy, không chỉ chọn giá trị tốt nhất. Sự khác biệt do logging, instrumentation hoặc cấu hình build có thể làm so sánh sai lệch.
5. Đọc CSV như một nguồn dữ liệu có giới hạn
CSV hữu ích để lọc và so sánh chuỗi frame, nhưng việc tổng hợp cần giữ nguyên ý nghĩa của cột. Không cộng các cột thời lượng khác phạm vi, cũng không lấy trung bình một trường rồi gọi đó là thời gian của mọi frame. Kiểm tra header, đơn vị và ghi chú của phiên bản profiler. Tài liệu Epic được chỉ định có ghi chú về hạn chế ở shipping build; vì vậy cần nêu rõ build dùng để đo, không chuyển số liệu trực tiếp thành tuyên bố về trải nghiệm người dùng cuối. [1]
6. Thiết kế phép đo lặp lại
Chọn một cảnh có thể tái hiện, khóa độ phân giải và các thiết lập liên quan, chạy đủ lâu để tránh chỉ đo một khoảnh khắc khởi động, rồi ghi nhiều lượt. Giữ lại file gốc để người khác xác minh bộ lọc. Nếu mục tiêu là tìm bottleneck, thay đổi từng yếu tố và quan sát chỉ số phù hợp, thay vì thay CPU, GPU, độ phân giải cùng lúc. Đánh dấu cả lúc chuyển cảnh hoặc tải tài nguyên nếu nó có thể làm dữ liệu khác thường. Khi lượt chạy không giống nhau, trình bày điều kiện sai khác thay vì gộp chúng thành một mức “điển hình”.
7. Trình bày kết quả không gây hiểu nhầm
Báo cáo rõ “frame time theo trường X”, “GPU duration theo bộ đếm Y” thay vì dùng các nhãn mơ hồ. Nếu hai đại lượng chồng lấp, nói rõ chúng không cộng tuyến tính. Nếu tài liệu không định nghĩa phép cộng mong muốn, không tự tạo công thức. Có thể đưa bảng riêng cho metric, nguồn đo, phạm vi và giới hạn, đồng thời mô tả một ví dụ timeline để người đọc hiểu quan hệ thời gian. Cách trình bày thận trọng không làm dữ liệu kém hữu ích; nó giúp người khác tái lập và tránh biến một phép đo engine thành kết luận chung về mọi trò chơi.
8. Kết nối việc đọc benchmark với nội dung thể thao
Người đọc có thể chuyển từ phân tích hiệu năng sang chủ đề thi đấu bằng cách xem Thông tin các trận bóng rổ trực tiếp trên KLIVE. Đây là liên kết tới điểm đến nội dung thể thao, không có nghĩa KLIVE dùng Unreal hay áp dụng các chỉ số trong bài. Hãy giữ ranh giới giữa dữ liệu của dự án game đang đo và thông tin của nền tảng nội dung. Khi viết bài kỹ thuật, nguồn Epic chỉ hỗ trợ diễn giải profiler Unreal; không thể dùng nó để đưa ra tuyên bố về một dịch vụ xem video cụ thể.
Nguồn tham khảo
Câu hỏi thường gặp
Có thể dùng kết luận này cho mọi ứng dụng không?
Không. Phạm vi phụ thuộc công cụ, phiên bản, API, nền tảng và dữ liệu thực sự được ghi; hãy nêu điều kiện cụ thể.
Một lần đo có đủ để xác định nguyên nhân không?
Thông thường không. Hãy tái hiện, giữ điều kiện ổn định, thay đổi một yếu tố mỗi lượt và phân biệt quan sát với giả thuyết.
Tài liệu được trích dẫn có chứng minh KLIVE dùng công nghệ này không?
Không. Nguồn kỹ thuật chỉ hỗ trợ giải thích trong phạm vi đã nêu; không suy ra triển khai hay trạng thái hiện tại của KLIVE.