티스토리 뷰

낙서

[HOWTO] 빌드속도향상

nodeal 2013.12.30 23:11

안녕하세요, 이번 포스팅에선 CyanogenMod의 빌드 속도 향상에 대해 알아보겠습니다.

 

주의 - 이 내용의 모두가 AOSP나 다른 AOSP기반 플랫폼소스에서 작동되는지 여부는 확인되지 않았습니다.

 

1. make 스레드 설정

GNUMake는 컴파일시 여러 코어/스레드를 활용하여 빌드하는 것이 가능합니다.

 

 mka bacon -j(스레드 수)


예를 들어

 

 mka bacon -j8

이때의 스레드 수는 각자의 CPU의 스레드 수를 말합니다.

인텔 제품 정보 제공처 영문 한글

 

 

2. CCache 활용

 

CCache는 Compiler-Cache를 일컫는 말입니다. 자세한 설명은 이곳(영문)에서 보시면 됩니다.2. CCache 설정 


 export USE_CCACHE=1

 mka bacon

 

또는

 

 USE_CCACHE=1 mka bacon

 

mka는 어디까지나 make의 향상된 기능이므로 -j옵션 등 다양히 부여할 수 있으니 각자에 맞게 사용하세요.

 

 

3. 출력 디렉터리 설정

 

SSD를 사용하지만 소스는 용량때문에 HDD에서 관리하신다면, 빌드할때 출력파일들만 SSD에 하여 속도를 향상시키는 방법이 있습니다. 이 방법이면 속도는 SSD에서 직접 빌드하는 것과 거의 비슷한 속도지만 용량관리에서 크게 유리합니다.

 

 export OUT_DIR=(경로)

 breakfast

 

예를 들어

 

 export OUT_DIR=/media/SSD/out

 breakfast i9300

 

 

같은 방법으로, 램디스크에 빌드하는 방법도 있습니다.

경고 - 이로 인한 피해에 대해서는 알려진 바가 없지만, 혹여나 생길 문제에 대해 책임지지 않습니다. 

주의 - 램 사이즈는 32GB이상을 권장합니다. 

 

우선 램디스크를 임의의 디렉터리에 마운트해봅시다.

 

 sudo mount -t tmpfs size=24g /media/RamDisk

 

24GB짜리 램디스크가 /media/RamDisk에 생성되었습니다.

마찬가지로 출력 디렉터리를 설정하면

 

 export OUT_DIR=/media/RamDisk/out

 

이 되겠습니다.

 

설정이후에는 breakfast나 brunch, lunch해야한단 점 잊지마세요.

 

 

4. 부분빌드

 

이미 한번 빌드했고 작은 부분만 수정했는데도 모두 빌드해야 할 때, 수정된 부분만 빌드하는 방법이 있습니다.

 

 mm <경로>

 경로 이하의 모든 소스를 빌드합니다. 

 mmm <경로>

 경로의 소스만 빌드합니다. 

 

이때 경로에는 Android.mk가 존재해야합니다.

 

유용한 옵션으로는 snod로, 재 빌드 이후 다시 배포 패키지를 제작합니다.

'낙서' 카테고리의 다른 글

C++ 포인터 주소값 저장하기  (0) 2017.10.12
C++ 동적할당의 고찰  (0) 2017.08.07
[HOWTO] Windows8 설치하기  (0) 2013.12.30
[HOWTO] 안드로이드에 우분투 설치하기  (0) 2013.12.30
[HOWTO] ARM용 GCC만들기  (0) 2013.12.30
[HOWTO] 빌드속도향상  (0) 2013.12.30
댓글
댓글쓰기 폼