que se oponen al uso de la opción -l
.
En principio, -l
parece superior a -j
. -j
dice, comience este muchos trabajos. -l
dice, asegúrese de que se estén ejecutando muchos trabajos. A menudo, esos son casi lo mismo, pero cuando tienes trabajos vinculados con E/S son otras rarezas, entonces -l
debería ser mejor.
Dicho esto, el concepto de promedio de carga es un poco dudoso. Es necesariamente una muestra de lo que sucede en el sistema. Por lo tanto, si ejecuta make -j -l N
(para algunos N
) y tiene un archivo MAKE bien escrito, entonces make iniciará inmediatamente una gran cantidad de trabajos y se quedará sin descriptores de archivos o memoria antes de que se pueda tomar la primera muestra de la carga del sistema. Además, la contabilidad del promedio de carga difiere en los sistemas operativos, y algunos oscuros no la tienen en absoluto.
En la práctica, te irá tan bien usando -j
y tendrás menos dolores de cabeza. Para obtener un mayor rendimiento de la compilación, ajuste sus archivos make, juegue con las opciones del compilador y use ccache o similar.
(Sospecho que la razón original para la opción -l
se debe a un momento en que varios procesadores eran raros y de E/S fue muy lento.)
Experimentalmente aunque me di cuenta en una máquina, durante la temporización uso diferente de I -j obtuve las compilaciones más rápidas usando -j8 en una máquina de 4 núcleos. – Zitrax
Tengo una experiencia similar. Probablemente porque hay algunas etapas de compilación vinculadas a E/S, de modo que cuando un proceso de compilación bloquea las E/S, otro puede usar ese tiempo para compilar. –