데스크탑 / 노트북 컴퓨터에서 큰 시스템을 재 구축 할 때 make
다음과 같이 하나 이상의 스레드를 사용하여 컴파일 속도를 높이라고합니다.
$ make -j$[ $K * $C ]
경우 $C
의 수를 표시하도록되어 코어 동안 기계가있다 (우리는 하나의 숫자와 숫자로 가정 할 수있다) $K
나는 다를 무언가 2
에 4
, 내 기분에 따라 달라집니다.
예를 들어 make -j12
코어가 4 개인 make
경우 최대 12 개의 스레드를 사용하도록 표시 할 수 있습니다.
이론적으로는 $C
스레드 만 사용하면 프로세스가 드라이브에서 데이터를 가져 오는 동안 코어가 유휴 상태가됩니다. 그러나 스레드 수를 제한하지 않으면 make -j
시간 전환 컨텍스트를 낭비 하거나 메모리가 부족 하거나 더 악화 될 위험이 있습니다. 머신 $M
에 메모리 기가 있다고 가정합니다 ( $M
10의 순서).
그래서 가장 효율적인 스레드 수를 선택하는 전략이 수립되어 있는지 궁금합니다.