성능 분석 (appletree analyze)

성능 분석은

appletree analyze <명령줄 인자> <파일명>

을 통해 실행할 수 있습니다.

명령줄 인자

-i FILE --input FILE

-i FILE --input FILE을 통해 입력값을 설정할 수 있습니다. FILE 인자에는 입력값이 포함된 텍스트 파일을 입력해 내용이 표준 입력으로 들어가게 할 수 있습니다.

-C --uncolored

-C --uncolored를 통해 글자 색이 없는 리포트를 볼 수 있습니다. ANSI 이스케이프 코드가 작동하지 않는 텍스트 파일 등의 환경에서 글자 깨집을 방지하기 위해 사용할 수 있습니다.

-L --without-log

-L --without-log를 통해 실시간 로그를 없앨 수 있습니다. 캐리지 리턴이 작동하지 않는 파일 리다이렉션 환경에서 사용할 수 있습니다. 추후 리포트를 파일로 저장하는 기능이 추가될 예정입니다.

-a --advanced

-a --advanced를 통해 상세 분석 모드를 사용할 수 있습니다. 상세 분석 모드는 상세 통계와 작업 디렉토리 외부의 파일을 보여주고 최소 실행 시간을 5초에서 10초로 연장합니다. 이 설정은 -T TIME 등으로 덮어쓸 수 있습니다. -a --advanced-m -e -T 10과 동일합니다.

-m --metrics

-m --metrics로 상세 통계 내용을 볼 수 있습니다. 상세 통계로는 스택 점유율, 증폭률, 중복 스택 점유율, 스택 증폭률이 있습니다. 이 수치의 정의와 해석에 대한 내용은 통계 수치를 확인하세요.

-T TIME --min-time TIME

-T TIME --min-time TIME으로 최소 실행 시간을 설정할 수 있습니다. 실행 시간이 최소 실행 시간 이상이 될 때까지 실행을 반복합니다.

-e --include-external

-e --include-external로 타겟 파일이 있는 디렉토리 외부의 파일에 있는 함수도 분석에 포함시킬 수 있습니다. 파이썬 내부 파일은 포함되지 않습니다.

-l --lab

-l --lab으로 실험 기능을 체험할 수 있습니다. 실험 기능에는 에러가 있을 수 있습니다. (아직 실험 기능이 없습니다.)

통계 수치

  • 점유율 (sample%): 프로그램 총 실행 시간 대비 해당 함수 / 줄이 실행되는 시간입니다.

  • 스택 점유율 (culmulative%): 프로그램 총 실행 시간 대비 해당 함수 / 줄이 스택에 있는 시간입니다.

  • 증폭률 (magnification): 해당 함수 / 줄의 점유율 대비 스택 점유율입니다.

  • 다중 스택 점유율 (multi-culmilative%): 스택 점유율과 같지만 스택에 중복해서 있었을 경우 그 횟수를 스택 점유율에 곱합니다. 100%를 넘어갈 수 있으며 이는 버그가 아닙니다.

  • 스택 증폭률 (stack magnification): 재귀함수를 확인하기 위해 만들어진 수치입니다. 해당 함수 / 줄의 점유율 대비 다중 스택 점유율로 계산됩니다.