2009-04-18 3 views
2

시스템의 많은 어플리케이션에서 사용되는 단일 라이브러리의 사용법을 프로파일하고 싶다고합시다. 나는 정확한 통계가 아닌 통계만으로도 괜찮습니다. (하지만 그 역시 좋을 것입니다.)시스템 전체 연속 라이브러리 프로파일 링

내가하고 싶지 않은 것은 실행중인 모든 프로그램을 프로파일 링 지원으로 다시 컴파일하는 것입니다. 프로파일 링 정보를 정기적으로 또는 일부 파일에 대한 요청시 덤프하고 싶습니다. 통계가 응용 프로그램 이름 또는 pid를 사용하여 분류 된 경우 정말 유용 할 것입니다.

지금 당장 달성 할 수있는 방법이 있습니까?

예제 사용법 : 실행중인 시스템의 데이터를 사용하여 glib 라이브러리를 프로파일 링합니다.

답변

5

oprofile을 살펴보십시오. 나는 그것이 당신이 원하는 것을 정확하게한다고 생각합니다.

Oprofile은 코드를 프로파일 링하기 위해 하드웨어 카운터 샘플링을 사용하며 샘플링 할 카운터를 사용자 정의 할 수 있습니다 (예 :). 시간 프로필을 원하지 않으면 부동 소수점 명령 카운터에서 샘플을 볼 수 있습니다. 대부분의 FP 작업을 수행하는 코드 부분). 시간 프로필의 경우 속도는 초당 ~ 2000 샘플이므로 오버 헤드가 매우 낮습니다.

생성 된 요약 데이터는 응용 프로그램,로드 모듈 및 심볼 정보가있는 경우 가장 많은 시간을 보냈던 심볼을 알려줍니다. 커널 및 사용자 공간을 별도로 프로파일 링하도록 선택할 수도 있으며 원하는 경우 콜 경로 정보를 사용할 수 있습니다. oprofile의 최신 버전은 JITed 코드의 프로파일 링을 지원하기 때문에 꽤 포괄적입니다.

+0

좋아요! oprofile에 대해 알고 있었지만 결코 그런 식으로 사용하려하지 않았습니다. 필자가 필요로하는 라이브러리의 심볼을 필터링하면 필요한 데이터를 얻을 수 있습니다. – viraptor