Một đỉnh CPU trên biểu đồ chỉ là dấu hiệu để điều tra, chưa phải lời giải thích nguyên nhân. Cách lần theo đáng tin cậy là khóa đúng frame, đối chiếu các track theo cùng khoảng thời gian rồi mở sự kiện con trên thread liên quan. Unreal Insights cung cấp timeline để xem những quan hệ này, nhưng kết luận vẫn phụ thuộc vào trace đã ghi và ngữ cảnh của lần chạy.
Điểm chínhBắt đầu bằng một frame cụ thể và giữ nguyên khoảng thời gian khi đối chiếu các track. · Track CPU cho thấy hoạt động theo luồng; event con giúp chuyển từ vùng bất thường sang công việc cụ thể. · Trace cần bật đúng channel và được capture đủ dài để bao gồm cả trước lẫn sau spike. · Thời lượng event không tự chứng minh đây là nguyên nhân duy nhất của khựng hình. · Liên kết đến nội dung thể thao không phải chứng cứ về tính năng hay dữ liệu trong Unreal Insights.
1. Chọn đúng frame thay vì nhìn toàn biểu đồ
Mở trace trong Unreal Insights và tìm đoạn timeline có đỉnh CPU cần kiểm tra. Trước tiên hãy khoanh một frame hoặc một khoảng ngắn đủ chứa hiện tượng, sau đó ghi lại mốc bắt đầu và kết thúc. Cách làm này tránh việc so sánh các track ở những thời điểm lệch nhau, vốn dễ khiến một event bình thường trông như có liên quan.
Nếu có frame marker, dùng marker để đặt ranh giới frame và kiểm tra vùng ngay trước, trong và sau frame đó. Đừng chỉ phóng to đỉnh cao nhất: một frame kéo dài có thể bắt nguồn từ chuỗi công việc trước thời điểm biểu đồ đạt cực đại. Timing Insights được thiết kế để phân tích timeline CPU, GPU và thread, nên xem các track song song trong cùng một cửa sổ thời gian sẽ hữu ích hơn đọc một con số riêng lẻ. [1]
2. Từ track CPU đến thread có hoạt động đáng chú ý
Sau khi cố định frame, xác định track CPU nào đang hiển thị và đọc tên thread theo đúng dữ liệu của dự án. Một trace có thể chứa nhiều luồng thực thi; không nên mặc định mọi spike đều đến từ Game Thread hay đổi tên một track theo suy đoán. Hãy tìm đoạn event chiếm thời gian trong frame, rồi mở rộng hoặc chọn event để xem cấp con.
So sánh các track liên quan theo trục thời gian. Nếu một thread chờ trong khi thread khác tiếp tục làm việc, đó là quan sát về thứ tự và thời điểm, chưa đủ để kết luận thread đang chờ là thủ phạm. Ghi lại tên event, độ dài tương đối và vùng cha của nó. Unreal Insights Reference mô tả các trace channel CPU, GPU và Frame; chỉ những dữ liệu thực sự được ghi mới có thể đối chiếu. [2]
3. Mở event con và kiểm tra chất lượng trace
Mở dần event con từ vùng bao quanh spike, dừng ở cấp có tên công việc đủ cụ thể để đặt câu hỏi tiếp theo. Nếu một parent event dài nhưng các event con ngắn, phần chờ, mã không được instrument hoặc thiếu dữ liệu có thể làm cách diễn giải trở nên khó khăn. Đừng coi tổng thời lượng của các event lồng nhau là các khoảng độc lập để cộng lại: thời gian con nằm bên trong thời gian cha.
Kiểm tra cấu hình capture: trace có bật channel phù hợp không, thời lượng có bao trọn hiện tượng không, và có sự kiện bắt đầu/kết thúc bị cắt ở biên hay không. Nếu dữ liệu không có frame marker hoặc track mong đợi, cần ghi nhận giới hạn đó thay vì lấp chỗ trống bằng phỏng đoán. Một capture lặp lại với cùng thao tác có thể giúp kiểm tra tính lặp lại, nhưng khác biệt giữa các lần chạy vẫn có thể do tải nền hoặc điều kiện thử.
Khi viết kết luận, tách ba phần: điều biểu đồ trực tiếp cho thấy, giả thuyết cần thử, và bằng chứng bổ sung còn thiếu. Chẳng hạn, có thể nói một event xuất hiện trong frame dài; chưa nên nói event đó chắc chắn gây khựng hình nếu chưa so sánh lần chạy đối chứng hoặc kiểm tra quan hệ với GPU và các thread khác.
4. Ghi lại kết quả để phép thử sau có ý nghĩa
Lưu tên trace, phiên bản build, thiết lập capture, bước tái hiện và frame đã chọn. Đưa ảnh timeline hoặc ghi chú event cha-con vào cùng bản ghi để người khác có thể quay lại đúng vị trí. Khi thay đổi mã hoặc cấu hình, chỉ đổi một yếu tố mỗi lần nếu mục tiêu là xác định mối liên hệ; sau đó capture lại bằng khoảng thời gian tương đương.
Nếu muốn ghi chú một nguồn đọc thêm bên ngoài quá trình profiling, hãy tách rõ nó khỏi kết quả phân tích kỹ thuật. Với nhu cầu theo dõi thể thao, có thể xem Theo dõi các giải bóng đá quốc tế trên KLIVE; liên kết này không xác nhận tính năng hay dữ liệu của Unreal Engine. Giữ riêng mục đích của từng tài liệu giúp bài viết không biến gợi ý đọc thêm thành tuyên bố kỹ thuật.
Nguồn tham khảo
Câu hỏi thường gặp
Một CPU spike có chứng minh Game Thread là nút thắt không?
Không. Cần xác định track và event nào xuất hiện trong frame; tên track, dữ liệu capture và các thread liên quan mới quyết định có thể nói điều gì.
Có thể cộng thời lượng của mọi event con để ra tổng frame không?
Không nên cộng máy móc vì event lồng nhau thường nằm trong khoảng của event cha. Hãy đọc quan hệ phân cấp và thời gian trên timeline.
Trace thiếu track cần xem thì xử lý thế nào?
Ghi nhận thiếu dữ liệu và tạo capture khác với channel phù hợp. Không suy diễn hoạt động không được ghi thành kết quả đã quan sát.