gprof를 사용하여 내 C++ 프로그램이 시간을 보내고 있는지 파악하려고합니다. 여기에 나의 딜레마가 있습니다. 제가 릴리스 빌드에 사용하는 것과 동일한 최적화 설정으로 컴파일하면 거의 모든 것이 인라인됩니다. gprof는 모든 시간이 인라인 된 핵심 루틴에 90 %의 시간을 소비한다고합니다. 반면에 인라인을 사용하지 않고 컴파일하면 프로그램의 실행 속도가 느려집니다.적극적인 인라이닝이있을 때 C++ 프로파일 링?
내 프로그램이 인라인을 사용하여 컴파일 될 때 내 핵심 루틴에서 호출되는 절차가 얼마나 많은지 알아야합니다.
저는 쿼드 코어 Intel 머신에서 64 비트 Ubuntu 9.04를 실행하고 있습니다. google-perftools를 살펴 봤지만 x86_64에서 제대로 작동하지 않는 것 같습니다. 32 비트 컴퓨터에서 실행하는 것은 옵션이 아닙니다.
인라인이 활성화되면 내 응용 프로그램을보다 효과적으로 프로파일 링하는 방법에 대한 제안 사항이 있습니까?
편집 : 다음은 내 문제에 대한 설명입니다. 처음에 명확하지 않다면 사과드립니다.
시간을 내 신청서에서 보냈던 곳을 찾고 싶습니다. 최적화 된 빌드를 프로파일 링하면 gprof가 발생하여 시간의 90 %가 모든 것이 인라인 된 메인에 사용되었다고합니다. 프로파일 링하기 전에 이미 알고있었습니다!
필자가 알아야 할 것은 빌드 옵션에서 최적화 또는 인라인을 비활성화하지 않고 인라인 함수가 얼마나 많은 시간을 사용하고 있는지 확인하는 것입니다. 응용 프로그램은 인라이닝이 비활성화 된 상태에서 프로파일 링을 수행하면 크기가 느려질 수 있습니다. 이 실행 시간의 차이점은 편리한 문제이지만 인라인을 사용하지 않도록 설정된 프로그램의 성능 프로필이 인라인을 사용하도록 설정된 프로그램의 성능 프로필과 상당히 일치한다는 확신이 없습니다.
한마디로은 : 최적화 나 인라인을 사용하지없이 C++ 프로그램 에 유용한 프로파일 정보를 얻을 수있는 방법이 있나요?
http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux. 이 스레드는 많은 정보를 가지고 있습니다. –