메뉴 건너뛰기

tnt_os

unix/linux 유닉스 수행감시기(Profiler) : prof

원우석 2004.04.20 22:43 조회 수 : 3072 추천:64

#프로그램이 시간을 어느 부분에서 소비하고 있는지를 알 수 있는 것이 매우 유용한 경우가 있다. 예를 들면, 만약 예상되는 것보다 더 많은 시간이 특정 함수에서 소모된다면, 보다 나은 성능을 위해서 그 함수는 최적화 되어야 할 가치가 있다. prof 유틸리티는 프로그램의 프로파일(profile)을 얻도록 해 주는데, 다음과 같이 동작한다.

Utility: prof -ln [ executeablefile[pfofileFile]]
prof은 표준 유닉스의 수행 감시기(profiler)이다. 파일 Bourne 셀 profileFile 내에 저장된 성능 추적을 기반으로 하여 실행 파일 executableFile 내의 각 함수의 반복과 시간의 표를 생성한다. 만약 profileFile이 생략되었다면, 파일이름 "mon.out"이 가정된다. 만약 executableFile이 생략되었다면, "a.out"이 가정된다. 실행 파일은 프로그램이 실행될때 "mon.out"파일을 작성하는 특수 코드를 생성하도록 번역기에 지시하는 cc의 -p옵션을 사용하여 번역되어야 한다. prof유틸리티는 프로그램이 종료된후 이 출력파일을 살피고, 그들 안에 포함된 정보를 보여준다.
디폴트로, 수행 감시된 정보는 시간의 역 순서로 나열된다. -l 옵션은 이름에 의해서 정보를 정렬하고, -n 옵션은 축적된 시간에 의해서 정보를 정렬한다.


예]
$ main2   -----------> 프로그램 실행
palindrome ("cat") = 0   ----------> 프로그램 출력
palindrome("noon") = 1
$ ls -l mon.out    ------------> 모니터 출력 표시
-rw-r-xr-x   1  gglass      1472  Jan 8 17:19 mon.out
$ prof main2 mon.out  -------------> 프로그램 수행 감시
$ prof -l main2 --------------> 이름의 순서로
위로