프로파일 링 보고서

프로파일 링 보고서 작성

프로세스 당 각 프로파일 링 세션이 끝날 때 프로파일 링 보고서가 생성됩니다 (katanaBinrenderboot(예 : 런타임 인스턴스 당) 호출하는 렌더링 Katana 예를 들어, 스레드마다 하나의 런타임을 인스턴스화하여 각각 다른 보고서를 생성하는 등 여러 스레드에서 절차 적. 각 보고서는 두 개의 파일로 구성됩니다.

1.   .dot 프로파일 링 세션 종료시 Op 트리가있는 그래프가 포함 된 파일.
2.   .csv 기록 된 요리 시간을 표 형식으로 포함하는 파일.

프로필 보고서는 기본적으로 Katana 세션의 임시 디렉토리 및 선택적으로 --profiling-dir 명령 줄 옵션. 예를 들면 다음과 같습니다.

./katana --profile --profiling-dir=/tmp/katana_profiling

보고서 이름은 다음 형식을 따릅니다.

Profiling__PID[P]__Runtime[R]__[YYYY]-[MM]-[DD]__[hh]-[mm]-[ss].csv

Profiling__PID[P]__Runtime[R]__[YYYY]-[MM]-[DD]__[hh]-[mm]-[ss].dot

어느 P 보고서를 생성 한 프로세스의 프로세스 ID R 런타임 인스턴스를 식별하는 숫자입니다. 여러 런타임을 인스턴스화하는 멀티 스레드 렌더에는 P ...에 대한 katanaBin 그리고 또 다른 renderboot 후자에서 하나 R 렌더링시 생성 된 런타임 인스턴스 당프로파일 링 세션이 종료 된 날짜 및 시간이 파일 이름에 추가됩니다.

그만큼 .dot 예를 들어, Graphviz가 필요한 다음 명령을 사용하여 파일을 PDF 문서로 변환 할 수 있습니다.

dot [DOT FILE] -Tpdf > [OUTPUT PDF FILE]

프로파일 링 보고서 분석

그만큼 .csv (쉼표로 구분 된 값) 파일에는 집계 된 조리 시간 및 조리 횟수가 포함됩니다. 스프레드 시트 응용 프로그램이나 다른보고 도구로 직접 읽을 수 있습니다. 각 항목 (행)에는 다음 값 (열)이 포함됩니다.

1.   OpId -Op 인스턴스의 정수 ID (또는 호출하는 경우 Op 인스턴스의 경우) IsExecOp 이다 true).
2.   OpType -Op 유형 문자열 (예 : "AttributeSet")
3.   IsExecOp -항목이 다음을 사용하여 호출 된 Op를 참조하는지 여부를 지정합니다. execOp() (true 또는 false).
4.   Location -쿠킹 된 장면 그래프 위치의 경로
5.   TotalTime(usecs) -Op 인스턴스가 성공적으로 요리하는 데 소요 한 총 시간 Location (마이크로 초).
6.   AbortTime(usecs) -Op 인스턴스가 중단 된 요리사에서 보낸 총 시간 Location (마이크로 초).
7.   TotalCount -Op의 요리사 수 Location.
8.   AbortCount -Op의 중단 된 요리사 수 Location.

에 대한 항목 IsExecOp 이다 true 호출에 의해 호출하는 Op에 의해 명시 적으로 조리 된 Op의 시간을 나타냅니다. execOp(). 이 경우 OpId 호출하는 Op 인스턴스에 해당하는 반면 opType 호출 된 Op의 유형에 해당합니다.

노트 :  출품작에 대해보고 된 시간 IsExecOp 이다 true 호출 Op에 대한 항목에도 포함됩니다. 따라서 세션 중 총 요리 시간은 모든 항목에 대한 요리 시간의 합입니다. IsExecOp 이다 false.

예를 들어 Op A ( IsExecOp 이다 false) 전화 execOp() Op B에서 execOp() Op C에서 TotalTime Op A의 경우 Op B의 경우보다 엄격히 큽니다. Op C의 경우보다 훨씬 큽니다. 이러한 Ops는 모두 동일한 것으로보고됩니다. OpID: Op A의 것

노트 :  중단 시간은 Geolib3에서 장면 확장의 일반적인 구성 요소이지만 좋은 Op-writing 사례를 통해 최소화됩니다. 자세한 내용은 Op API.

현재 Geolib3 Runtime은 Ops와 해당 프로젝트 노드 사이의 맵핑에 대한 지식이 없습니다. 그러나 .dot 파일로 생성 된 그래프는 프로파일 링 세션이 종료 될 때 런타임의 Op 트리 구조를 보여 주며 Ops를 노드에 일치시키는 데 도움이 될 수 있습니다. 단일 세션 내에서 별개의 또는 변경된 Op 트리의 쿠킹 프로파일 링은 유용성이 떨어질 수 있으며, 아마도 용도가 다른 Op 인스턴스에서 집계가 잘못 될 수 있기 때문에 유효하지 않은 결과 일 수 있습니다.

Op 트리는 노드 그래프와 다른 UI 요소의 모든 암시 적 리졸버, 대화식 렌더 필터 및 터미널 Ops에서 직접 작성됩니다. 일부 노드는 여러 개의 Op를 생성합니다. OpId 물론 그래프의 값은 각각의 값에 해당합니다. .csv 파일.

로드 할 때 .csv 스프레드 시트의 파일을 사용하면 값을 쉽게 필터링, 정렬, 집계 및 합계 할 수 있습니다. 평균 시간은 시간을 요리사 수로 나누어 계산할 수 있습니다. 일반적인 스프레드 시트 소프트웨어에 완전히로드되지 않을 수있는 매우 큰 보고서 (수백만 항목까지)를 생성 할 수 있습니다. 이러한 경우 .csv 형식은 예를 들어 위치 또는 Op 유형별로 값을 집계하는 스크립트 또는 프로그램에 의해 쉽게 구문 분석됩니다.