logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

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

by digipine posted Nov 01, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

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 •

List of Articles
No. Subject Author Date Views
23 [C/C++] Random UUID String 생성 코드 digipine 2021.10.21 50
22 소켓 통신을 이용한 HTTP 서버 개발 강의록 file digipine 2020.08.01 855
21 C++ Atomic 클래스에 대해서 file 엉뚱도마뱀 2017.12.13 1415
20 C++ 컴파일 오류(error): variable 'std::istringstream sstream' has initializer but incomplete type digipine 2017.11.02 5298
19 fopen 파일 열기 모드 옵션 정리 digipine 2017.11.02 2865
» make -j 옵션으로 컴파일 속도 최적화 하기 digipine 2017.11.01 1879
17 [Linux] Pthread 사용법, Thread 동기화 총정리 digipine 2017.11.01 57579
16 [linux] zlib build 방법 digipine 2017.11.01 1015
15 Linux C 언어로 Shell 명령어 실행하기 digipine 2017.11.01 17504
14 Introduce to Singly-linked List file digipine 2017.11.01 1148
13 [shared lib] so 동적 라이브러리 만들기와 사용법 - 리눅스 digipine 2017.11.01 4913
12 Unix C/C++ Input and Output Function Reference digipine 2017.11.01 2966
11 wchar_t에 대하여 digipine 2017.11.01 3074
10 C 에서 Overloading 구현 digipine 2017.11.01 1296
9 C를 이용한 객체지향 프로그래밍 digipine 2017.11.01 417
8 Callback in C++ 와 Delegate 차이점 digipine 2017.11.01 1890
7 Solaris에서 pmap을 이용하여 백그라운드 프로세스 메모리 크기 구하기 digipine 2017.10.29 459
6 Solaris 10에 개발 Tool (gcc,vim,gdb) 설치 digipine 2017.10.29 845
5 brute-force 알고리즘을 이용한 패턴 위치 찾기 digipine 2017.10.29 1072
4 MD5 파일 변조 검사 관련 소스 (리눅스/Windows) digipine 2017.10.29 2093
Board Pagination Prev 1 2 Next
/ 2