Buenas, ésta vez les traigo un pequeño tip (que probablemente muchos ya conozcan), pero que varias personas que suelen usar distros basadas en Pacman probablemente no lo sepan, y que para peor: estén usando un solo núcleo para compilar.
Manos a la obra…
Conocer nuestro número de procesadores
Primero vamos a ver cuantos procesadores tenemos disponibles (los mas expertos no se asusten, hay diferencias obviamente entre threads y procesadores físicos, pero el makepkg usa como parámetro los hilos de ejecución), para eso ejecutamos:
lscpu | grep '^CPU(s):'
En mi caso devuelve:
[x11tete11x@Jarvis ~]$ lscpu | grep '^CPU(s):' CPU(s): 8 [x11tete11x@Jarvis ~]$
Esto es porque en el caso de los procesadores Intel con HiperThreading muestra también los hilos de ejecución.
Editar el Archivo /etc/makepkg.conf
Editamos el archivo /etc/makepkg.conf para indicarle al makepkg que use todos los procesadores disponibles; en cuanto a esto, según la wiki de Gentoo, la cantidad de «trabajos» a realizar sale de la siguiente cuenta:
Número de procesadores + HT (HiperThreading en caso de Intel compatible) + 1
Editamos:
sudo nano /etc/makepkg.conf
y modificamos la linea MAKEFLAGS (descomentando<quitando el «#»>) con el valor correspondiente, en mi caso quedaría así:
MAKEFLAGS="-j9"
Guardamos los cambios y listo, ya podemos hacer la compilación de nuestros paquetes usando varios núcleos dentro de cualquiera de nuestras distros basadas en Pacman
A continuación adjunto un vídeo en el que se puede apreciar como «simplescreenrecorder» es compilado en cada caso, con el MAKEFLAGS (MAKEFLAGS=»-j9″), y sin el MAKEFLAGS (#MAKEFLAGS=»-j9″):
Tío esto es, como decimos en mi pueblo «la polla en vinagre» osea, muy bueno 😛
Yo tengo un 4 núcleos, me salen 4, supongo que tendré que poner un 5 ¿no?
Por cierto, corrige makekpg.conf, que si no volverás loco al copy/pastero, es makepkg.conf
Pacman rules!!!! 😛
Justo vi el errorsito xD, ya le mande a los muchachos para que lo corrijan xD
efectivamente, en tu caso seria 5 xD.
Sabia que te iba a gustar éste artículo xD jajajja
Corregido. 🙂
Mi user agent me traiciona, ahora estoy en Arch…
Todo por usar el mismo perfil de Firefox en ambas distros. 😛
Aprobecho para comentar que si usas BFS (si no sabes lo que es entonces no lo usas) el maximo rendimiento se consigue con la cantidad de nucleos tal cual , sin añadirle nada .
Y si me tira que tengo «2» pongo 3 ¿no?.
@ShutdowN exacto
Te pinches amo, lo hice cuando sacaste el articulo, ahora lo estoy utilizando porque no sabía compilar jajaja.
Es lindo porque conky me dice que los 4 hilos de mi i3 están al 100% y cuando lo edité creo que tenía sólo un hilo configurado. Amo esto, estoy compilando ahora mismo mi propio kernel, a ver como sale :v
Concuerdo con Yoyo, aunque en mi pueblo no se diga, es «la polla en vinagre»!!. Apenas llegue a casa lo pruebo.
que probas cuando llegues a casa … la polla ? jajja
me hiciste reir …
abrazo
Sabía que eran 5 porque lo decía en este post de como compilar a mano el Kernel para Debian jajaja
http://yoyo308.com/2013/11/22/como-compilar-e-instalar-el-ultimo-kernel-3-12-1-en-crunchbang-waldorf-debian-wheezy/
maldito auto spamero xD jajajja
No te preocupes, ya lo tengo en la mira de mi banhammer, muajajajaja.
«Mi banhammer», no me hagas darte un putazo a ti también para que se te bajen los humos <3
Fuera de aquí, cabeza de rábano, sigue trabajando o voy por el garrote.
Jajaja.. madre mía, me encanta esta Comunidad.
Tambien es muy util ccache , pero eso requiere una compilacion previa para acelerar la compilacion.
No entendí, compilas para acelerar la compilación?
ccache es una herramienta (muy usada por los usuarios de gentoo) que permite guardar ficheros intermedios de la compilacion de un archivo , resultando la siguiente compilacion de ese ejecutable mucho , mucho mas rapida . Util tambien para desarrolladores de aplicaciones y para personas que construyen y actualizan constantemente su propio kernel.
ccache es una cache de compilación, cuando la activas la primera compilación que haces dura lo que deba durar (si es Java, Firefox y LibreOffice juntos te aseguras unas cuantas horas de compilación si tu hardware no es muy potente), pero la segunda compilación de ese mismo software (la misma versión, con algunos cambios en sus opciones de compilación o parches) será mucho más rápida porque el ccache verifica que muchos de lo compilado ya este listo y te disminuye el tiempo de compilación. Sin embargo, a veces da problemas (no por algo en la Wiki de Gentoo ponen la advertencia) y en la lista de FirefoxOS también lo hacen, así que si vas a cachear hazlo con una misma versión, si pasas a otra, limpia el cache y empieza de nuevo.
Gracias a ambos por el dato, no lo sabía
Llevo año y medio en Arch y nunca me había enterado de este tip, gracias.
ser pobre apesta!
jejejejejejjee
Gracias. estos datos son muy buenos
tengo una pregunta…
vengo hace un tiempo usando esta opcion (el numero que me tiró era 4 por lo que queda #MAKEFLAGS=»-j5″)
pero noto que cuando actualizo algunos programas, el CPU se va a 100% y es complicado usar otros programas mientras pasa esto…
puedo hacer algo intermedio?? por ejemplo, ponerle un #MAKEFLAGS=»-j3″ ???? o es algo que esta activado o desactivado sin un termino medio?
saludos.
Luis, si, podes ponerle -j3 sin problemas, lo que hace ese parámetro es definir en cuantos «threads» (para no entrar en detalle, digamos que los threads son en cuantas «porciones paralelas» vas a procesar lo que vas a hacer) se van a utilizar para dicho proceso
perfecto, ahora le pongo. Gracias vieja!