Việc bạn làm trên máy tính trong khi thực hiện các phép đo PGO sẽ không ảnh hưởng đến kết quả của việc tối ưu hóa. PGO làm gì là sử dụng các phép đo để tìm các đường dẫn nóng trong mã cho một tập dữ liệu nhất định và sử dụng thông tin này để làm cho chương trình càng nhanh càng tốt cho tập dữ liệu này và đường dẫn nào nóng và không độc lập với các chương trình khác chạy trên máy tính.
Để giải thích mọi thứ một chút, khi tối ưu hóa mã, có sự cân bằng giao dịch. Việc cải thiện sẽ cao hơn ở một số phần của mã và thấp hơn ở những phần khác tùy thuộc vào việc biến đổi mã nào được sử dụng và chúng được áp dụng ở đâu. Để có được kết quả cuối cùng tốt hơn, bạn muốn có các cải tiến cao về mã được thực hiện rất nhiều (mã nóng trong trình biên dịch lingo) trong khi bạn có thể sống với các cải tiến nhỏ hơn trong mã được thực hiện ít thường xuyên hơn (mã lạnh). Thông thường một tập hợp các heuristics được sử dụng để xác định các phần nóng của chương trình và áp dụng tối ưu hóa theo cách mà làm cho các bộ phận này càng nhanh càng tốt. Vấn đề với cách tiếp cận này là các chẩn đoán không biết bất cứ điều gì về cách chương trình sẽ được sử dụng trong thực tế và có thể xác định sai mã nóng là lạnh.
Tối ưu hóa hướng dẫn hồ sơ (PGO) là một phương pháp giúp trình biên dịch xác định vị trí các phần nóng của mã sử dụng dữ liệu từ các lần thực thi thực. Bước đầu tiên bạn nói với trình biên dịch là xây dựng một phiên bản cụ thể của chương trình để đo lường cách mã được thực thi trong thực tế, thường là bằng cách thêm bộ đếm để đếm số lần lặp trong vòng lặp và nhánh nào được chọn trong câu lệnh if. Bước thứ hai là chạy chương trình được thiết kế trên dữ liệu thực. Khi kết thúc chương trình, chương trình sẽ xuất các giá trị của tất cả các bộ đếm bổ sung và bằng cách kết hợp các bộ đếm với mã, có thể thấy phần nào của chương trình là nóng (số cao) và các giá trị lạnh (số thấp). Cuối cùng chương trình được biên dịch nhưng thời gian này được ghi lại với hồ sơ chương trình. Điều này ngụ ý rằng trình biên dịch không còn cần phải đoán phần nào sẽ nhanh hơn và có thể chậm hơn nó có thể tìm kiếm nó trong cấu hình.
Doom là không sao, sẽ không ăn nhiều CPU :) –
Nghi ngờ, an toàn hơn xin lỗi: chơi trên máy tính khác của bạn –
Hãy di chuyển và tìm hiểu. ;-) –