make -j 옵션으로 컴파일 속도 최적화 하기

by digipine posted Nov 01, 2017
?

Shortcut

PrevPrev Article

NextNext Article

ESCClose

Larger Font Smaller Font Up Down Go comment Print

make의 -j 옵션은 한번에 수행할 수 있는 명령(Job)을 지정하는 병렬 실행(Parallel Execution) 옵션입니다.

예를 들어 CPU코어가 4개라면 한번에 수행할 수 있는 명령을 -j4로 지정하여 프로세스가 4개 생성되어 병렬로 컴파일합니다.
명령수는 프레스의 수로 정의됩니다.
이렇게하여 소스를 컴파일시 4개 CPU의 자원을 최대한 활용하게 되는 것입니다. top 명령으로 확인하면 바로 알수있습니다.

make의 개발자에 의하면 CPU 총 코어 갯수에서 20%의 코어 갯수를 추가하는 것이 속도가 가장 좋게 작업되었다고 합니다.
코어가 8개이면 8 + 1.6 (8 의 20%) 이므로 -j10 정도가 적당할 것 같습니다.

일반적으로 커널 소스 빌드시에는

간단히 > make -j`cat /proc/cpuinfo | grep cores | wc -l` kernel.img  하는 것이 좋습니다.

아래는 최상의 속도를 내는 스크립트 예제 입니다.



#!/bin/bash
cpunum='cat /proc/cpuinfo | grep cores | wc -l`
let bestnum=$cpunum+$(printf %.0f`echo "$cpunum*0.2"|bc`)

make -j`echo $bestnum` kernel.img

 

TAG •