PGO 측정을 수행하는 동안 컴퓨터에서 수행 한 작업으로 인해 최적화 결과에 영향을주지 않아야합니다. PGO가하는 일은 측정을 사용하여 주어진 데이터 세트에 대한 코드에서 핫 경로를 찾아이 정보를 사용하여이 데이터 세트에 대해 가능한 한 빨리 프로그램을 작성하고 어떤 경로가 뜨겁지 않고 어떤 경로가 다른 프로그램과 독립적인지를 확인하는 것입니다 컴퓨터에서 실행 중입니다.
비트를 설명하기 위해 코드를 최적화 할 때 트레이드 오프가 있습니다. 개선 된 부분은 코드의 일부분에서 더 높을 것이고 사용되는 코드 변환과 적용되는 부분에 따라 더 낮을 것입니다. 보다 나은 최종 결과를 얻으려면 자주 실행되는 코드 (컴파일러 용어로는 핫 코드)가 적고 코드 실행 빈도를 줄이면서도 (콜드 코드) 실행하는 것이 좋습니다. 일반적으로 경험적 방법 세트는 프로그램의 이러한 뜨거운 부분을 식별하고 이러한 부분을 최대한 빨리 만드는 방식으로 최적화를 적용하는 데 사용됩니다. 이 방법의 문제점은 경험적 방법이 프로그램이 실제로 어떻게 사용되는지에 대해서는 알지 못하고 핫 코드를 차가운 것으로 잘못 식별 할 수 있다는 것입니다.
프로필 유도 최적화 (PGO)는 컴파일러가 실제 실행 데이터를 사용하여 코드의 최신 부분을 찾는 데 도움이되는 방법입니다. 첫 단계로 컴파일러에게 코드가 실제로 실행되는 방식을 측정하는 프로그램의 인스 트루먼 테이션 된 버전을 빌드하도록 지시합니다. 일반적으로 루프의 반복 횟수를 계산하는 카운터와 if 문에서 선택된 분기가 추가됩니다. 두 번째 단계는 계측 된 프로그램을 실제 데이터로 실행하는 것입니다. 실행이 끝나면 프로그램은 추가 된 모든 카운터의 값을 출력하고 카운터를 코드와 일치시킴으로써 프로그램의 어느 부분이 뜨겁고 (높은 숫자) 냉 (낮은 숫자)인지 확인할 수 있습니다. 마지막으로 프로그램은 컴파일되지만 이번에는 프로그램 프로필과 함께 기각됩니다. 이는 컴파일러가 어떤 부분이 더 빠르며 느려지는지 추측 할 필요가 없어 프로파일에서 찾을 수 있다는 것을 의미합니다.
Doom은 CPU를 많이 먹지 않아도 괜찮습니다. –
의심의 여지가 있지만, 미안보다 안전합니다. 다른 컴퓨터에서 재생하십시오. –
들어가서 알아보십시오. ;-) –