| HOME / 정보공유 / AIX 명령어 모음

prof
prof prof 명령 목적 오브젝트 파일 프로파일 데이터를 표시합니다. 구문
prof [ -t | -c | -a | -n ] [ -o | -x ] [ -g ] [ -z ] [ -h ] [ -s ] [ -S ] [ -v ] [ -L PathName ] [ Program ] [ -m MonitorData ... ]
설명
prof 명령은 오브젝트 파일 Program의 모니터 서브루틴에 의해 수집된 프로파일 데이터를 해석합니다(디폴트로 a.out). 이 명령은 오브젝트 파일 Program에서 기호 테이블을 읽고 이를 프로파일 파일(디폴트로 mon.out)과 연관시킵니다. prof 명령은 외부 텍스트 기호마다 해당 기호의 주소와 다음 주소 사이에 소비되는 실행 시간 비율, 기능이 호출된 횟수 및 호출당 평균 밀리초 수를 표시합니다.
주: Symbols from C++ 오브젝트 파일의 기호에는 그 기호가 사용되기 전에 요구된 이름이 있습니다.
기능의 호출 수를 일치시키려면, cc 명령을 -p 플래그와 함께 사용하여 파일을 컴파일해야 합니다. -p 플래그를 사용하면, 컴파일러는 사용자 프로그램의 다시 컴파일되는 기능마다 작성된 오브젝트 코드에 mcount 서브루틴 호출을 삽입합니다. 프로그램이 수행되는 동안, 상위 기능이 하위 기능을 호출할 때마다, 하위 기능은 mcount 서브루틴을 호출하여 해당 상위-하위 쌍의 별개의 계수기를 증가시킵니다. -p 플래그로 다시 컴파일된 프로그램에는 삽입된 mcount 서브루틴이 없으므로 이들을 호출한 기능에 대한 기록이 없습니다.
또한, -p 플래그는 프로그램 시작 및 종료시 monitor 서브루틴을 호출하는 프로파일링 시작 기능을 포함하기 위해 오브젝트 파일을 정렬합니다. 프로그램이 실제로 종료될 때 monitor 서브루틴 호출로 mon.out 파일이 기록됩니다. 따라서 주 프로그램에서 확실하게 exit이나 return을 사용하는 프로그램만이 mon.out 파일을 작성하게 됩니다.
로드된 오브젝트의 위치 및 이름이 mon.out 파일에 저장됩니다. 어떤 플래그도 선택하지 않으면, prof에서 이들 이름을 사용하게 됩니다. 다른 오브젝트를 액세스하려면, 프로그램을 지정하거나 -L 옵션을 사용해야 합니다.
주: 공유 라이브러리 루틴 호출과 같은 반입된 외부 루틴 호출에는 실제 루틴에 대한 호출을 설정하는 국지 glink 코드에 대한 중간 호출이 있습니다. 이 코드를 수행하는 동안 타이머 시계가 꺼지면, 시간은 routine.gl을 호출한 루틴에 부과되며, 여기서 routine은 호출되고 있는 루틴입니다. 예를 들면, glink 코드에서 printf 서브루틴을 호출하는 동안에 타이머가 꺼지면, 시간은 printf.gl 루틴에 부과됩니다.
파일
상호 배타적인 플래그 a, c, n, t는 prof 명령이 출력 행을 분류하는 방법을 결정합니다.
-a 증가하는 기호 주소별로 분류합니다.
-c 감소하는 호출 수별로 분류합니다.
-n 기호 이름별로 사전적으로 분류합니다.
-t 감소하는 총 시간 비율별로 분류합니다(디폴트).
주: a, c, n 및 t 플래그를 동일한 명령에 둘 이상 사용할 경우에도 여전히 prof 명령을 수행할 수 있습니다. prof 명령은 이 플래그 중 명령행에서 최초로 발견한 플래그를 승인하고 나머지는 무시합니다.
상호 배타적인 플래그 o와 x는 모니터된 각 기호의 주소를 표시하는 방법을 지정합니다.
-o 각 주소를 8진수로 기호 이름과 함께 표시합니다.
-x 각 주소를 16진수로 기호 이름과 함께 표시합니다.
주: -o 및 -x 플래그를 동일한 명령에 모두 사용할 경우에도 여전히 prof 명령을 수행할 수 있습니다. prof 명령은 이들 두 플래그 중 명령행에서 최초로 발견한 플래그를 승인하고 나머지 플래그는 무시합니다.
다음과 같은 플래그를 임의대로 결합해서 사용하십시오.
-g 비전역 기호를 포함합니다(정적 기능).
-h 보고서에 일반적으로 표시된 헤더를 생략합니다. 이것은 보고서가 더 처리되야 될 경우 유용합니다.
-L PathName 공유된 오브젝트가 위치할 대체 경로 이름을 사용합니다.
-m MonitorData mon.out대신 MonitorData에서 프로파일링 데이터를 가져옵니다.
-s mon.sum에 요약 파일을 작성합니다. 이는 둘 이상의 프로파일이 지정되는 경우에 유용합니다.
-S 모니터링 매개변수의 요약과 표준 오류에 대한 통계를 표시합니다.
-v 모든 인쇄를 억제하고, 플로트 필터 표시를 위해 프로파일의 그래픽 버전을 표준 출력으로 전송합니다. 플로팅의 경우, 디폴트 값인 0과 100의 하한 및 상한 숫자는, 선택된 비율의 프로파일이 더 높은 해상도로 플로트되도록 만들기 위해 주어집니다.
-z 0 호출 및 0 시간과 연관되는 경우에도, 프로파일 범위의 모든 기호를 포함하고 있습니다.
예제
각각의 기호 주소에서 소요된 시간을 시간별로 분류하여 헤더 없이 표시하려면 다음과 같이 입력하십시오.
prof -t -h
다음 예제에서는 /home/score/lib 디렉토리에 runfile 파일을 작성하는 데 사용되는 공유 라이브러리의 국지 버전을 확보합니다. 사용되는 데이터 파일은 mon.out이 아니라 runfile.mon입니다.
prof -x -L/home/score/lib runfile -m runfile.mon
파일
mon.out 디폴트 프로파일
a.out 디폴트 오브젝트 파일
mon.sum 요약 프로파일
관련 정보
cc 명령, nm 명령, gprof 명령
exit 서브루틴, profil 서브루틴, monitor 서브루틴