2010-06-11 18 views

Respuesta

15

Siempre he visto el número de núcleos disponibles más 1 como el valor recomendado

+5

La idea detrás del +1 es que ayuda a que los procesadores hagan algo mientras esperan la E/S de disco para el siguiente archivo fuente. –

+0

De acuerdo, más 2 funcionó bien para mí. Uso de disco pesado. –

+0

Ver [MAKEOPTS = "- j $ {core} +1" NO es la mejor optimización] (https://blogs.gentoo.org/ago/2013/01/14/makeopts-jcore-1-is-not- the-best-optimization /) – vladr

4

justa medida.

Comience con la cantidad de núcleos. Y luego agregue uno hasta que sienta que obtiene rendimientos decrecientes.

+1

+1 El experimento es la única forma real de hacerlo aquí. Escribí una gran cantidad de código de subprocesos múltiples que estaba vinculado a E/S, y normalmente puede aumentar el número de subprocesos más que el número de procesadores y aún así obtener aumentos de rendimiento. Luego, en algún punto, la actuación cae, a menudo de manera bastante dramática. –

+0

Estoy algo desgarrado aquí, si esta es una buena idea o no. En algún momento, obtiene un mayor rendimiento solo porque los hilos ocupan un segmento de tiempo mayor. Esa no es una muy buena idea. Por el contrario, si el proceso de construcción es tan importante, uno debería usar menos hilos y elevar el nivel de "bondad". –

+0

@Mads: de lo que estoy hablando aquí es que un proceso de compilación puede estar haciendo mucho acceso al disco. Una cantidad de hilos se puede bloquear rápidamente mientras se espera el disco, mientras que los otros (uno por núcleo) pueden estar haciendo una compilación real. – quamrana

Cuestiones relacionadas