O que faz com que -jn signifique?

3

Estou tentando instalar o LLVM na minha máquina do CentOS. No tutorial de instalação do LLVM, um sinalizador -jn é especificado junto com make .

Ele diz para executar make -jn e também diz " Escolha n tal que o make não seja executado para trocar a questão do espaço. "

Qual é o uso da bandeira -j e como posso escolher o valor de n?

    
por Rakesh R Nair 24.01.2016 / 23:34

4 respostas

5

A sinalização -j make indica quantos encadeamentos você deseja atribuir à compilação.

n é, neste caso, um marcador para o número de processos.

A regra clássica é que é seguro fazer n = o número de núcleos que sua CPU possui. Então, se você está em uma máquina dual core, você pode usar -j2 , enquanto em uma máquina de 8 núcleos -j8

Na prática, descobri que esse é um bom ponto de partida, mas você provavelmente deve se sentir à vontade para experimentar um pouco e ver o que funciona melhor para você.

    
por 24.01.2016 / 23:46
2

Se é seguro usar n = número de núcleos também depende se você tem memória suficiente para todos os trabalhos paralelos de compilação / link. Também pode causar problemas para E / S de disco. Se este é um trabalho que você só precisa executar, uma vez que é provavelmente melhor escolher um n mais baixo e deixar que ele leve o seu tempo.

    
por 25.01.2016 / 00:01
1

O -j sinalizador diz make(1) quantos processos devem ser executados em paralelo. O melhor valor depende das tarefas executadas, dependências, ... uma regra básica é o número de processadores. Se você der apenas -j (no n ), make iniciará tantos processos em paralelo quanto possível.

    
por 25.01.2016 / 01:58
0

Assim como um exemplo concreto de como o -j sinalizador afeta uma operação de criação e um motivo para ter cuidado com ela:

Esqueci que tinha MAKEFLAGS=-j5 e tentei construir o LLVM; uma vez que atingiu 97% por cento gerou 5 ld processos ao mesmo tempo, cada um consumindo 1.5GB + RAM. O primeiro caiu em 20 minutos, e o resto continuou consumindo mais e mais memória até que meu computador ficou inutilizável e eu finalmente decidi Ctrl+C e tente novamente com um -j menor. Com -j3 meu computador ainda está lutando com três ld processos, mas pelo menos eu ainda posso digitar isso com apenas alguns soluços.

    
por 04.03.2017 / 22:30