Yocto
Yocto 빌드 통계 (buildstat) 시각화
chbae
2023. 8. 3. 20:59
728x90
Yocto에서는 빌드 과정 중 각 컴포넌트의 태스크를 빌드할 때 사용한 리소스(CPU, Disk) 사용량 및 빌드 시간을 저장할 수 있다. 이는 빌드 시간을 최적화하는데 많은 도움을 준다.
빌드 통계를 활성화 하는 방법은 conf 파일 (ex, local.conf)에 다음 라인을 추가하여 빌드하면 된다.
INHERIT += "buildstat"
빌드를 하면 아래 그림과 같이 build/tmp/buildstats/[timestamp] 디렉토리에 레시피 디렉토리가 있고 그 디렉토리 안에 태크스 별로 파일이 생성된다.
아래는 zip 컴포넌트의 do_compile 태스크 결과 파일이다.
이 파일들만을 가지고는 분석하기 어렵기 때문에 yocto에서는 시각화할 수 있는 python 스크립트를 제공한다. 다음 명령어를 실행하여 분석하기 쉽게 bootchart.png 파일로 만들어 낸다.
사전에 설치해야할 패키지 (MacOS 기준)
$ brew install cairo pkg-config gobject-introspection
$ pip3 install pycairo PyGObject
실행
$ ./poky/scripts/pybootchartgui/pybootchartgui.py build/tmp/buildstats/[timestamp] -o /tmp
아래 파일은 kirkstone에서 core-image-minimal을 빌드하고 pybootchargui 스크립트를 실행하여 나온 파일의 일부를 확대하여 캡쳐했다.
이 결과 값을 잘 분석하면 어디서 병목이 걸리는지 등에 대한 분석을 할 수 있다.
각 결과 값에 대한 자세한 정보는 https://subscription.packtpub.com/book/iot-&-hardware/9781788399210/1/ch01lvl1sec26/working-with-build-statistics 를 참고하기 바란다.