성능 분석도구가 여러 가지가 있지만 Qt Creator에서도 제공하는 성능 분석 도구들이 있다.
그중에서 QML Profiler를 사용하여 분석하였다.
QML Profiler
QML Profiler는 QML 기반 애플리케이션의 랜더링, JavaScript 실행, 시그널/슬롯 처리 등 QML 엔진이 수행하는 작업들의 성능을 분석해 주는 도구이다. 타임라인과 Flame Graph, 세부 분석 등을 통해 프레임별 렌더링 시간, 애니메이션, JavaScript 함수 실행 시간, 이벤트 처리, 바인딩 등 상세 데이터를 제공해 준다.
Qt Creator에서 Analyze 탭에 QML Profiler를 클릭하면 분석이 시작된다.
1. Timeline
시간 순으로 메모리 사용, 애니메이션, 컴파일, 생성, 바인딩, 시그널, JavaScript 함수 등의 항목들을 시각적으로 보여준다.
2. Flame Graph
Total Time 뷰에서 가로 막대는 모든 JavaScript 및 QML 이벤트의 총 런타임에 대비 특정 함수의 모든 호출에 걸린 시간을 보여준다. 중첩은 어떤 함수가 어떤 다른 함수에 의해 호출되었는지 보여준다.
3. Statistics
각 바인딩, 생성, 컴파일, JavaScript 또는 신호 이벤트가 트리거 되는 횟수와 걸리는 평균 시간을 표시한다.
ARM 보드에서 돌아가는 프로그램을 만들 때 어디서 리소스를 많이 잡아먹는지 분석하기 좋았다.
특히 각 매서드나 시그널 등등 시간이 얼마나 걸리는지 % 수치로 코드에도 나와서 매우 유용한 기능이다.