Cuando (re) construyo grandes sistemas en una computadora de escritorio / portátil, le digo makeque use más de un hilo para acelerar la velocidad de compilación, así:
$ make -j$[ $K * $C ]
¿Dónde $Cse supone que indicar el número de núcleos (que podemos suponer que hay un número de un dígito) la máquina tiene, mientras que $Kes algo que puede variar en cada 2a 4, dependiendo de mi estado de ánimo.
Entonces, por ejemplo, podría decir make -j12si tengo 4 núcleos, lo que indica que debo makeusar hasta 12 hilos.
Mi razonamiento es que si solo uso $Chilos, los núcleos estarán inactivos mientras los procesos están ocupados recuperando datos de las unidades. Pero si no limito el número de subprocesos (es decir make -j), corro el riesgo de perder el tiempo cambiando de contexto, quedando sin memoria o algo peor . Supongamos que la máquina tiene $Mgigas de memoria (donde $Mestá en el orden de 10).
Así que me preguntaba si existe una estrategia establecida para elegir el número más eficiente de hilos para ejecutar.
