Aquí a l’Euskal Encounter (Barakaldo-Bilbao) en Fran li comentava al Jordi que per què no compilava amb -j2.
El -j2 el què (molt per sobre) és llençar dos gcc’s en paral·lel. És a dir, el make llença dos gcc’s per intentar anar més ràpid.
És de sentit comú que no va exactament al doble de ràpid: l’entrada/sortida de disc no és prou ràpida (o s’intenta accedir a la vegada), no sempre en qualsevol moment es poden llençar dos processos (perquè hi ha dependències), els processador multi-core tampoc van, penso, exactament igual que dos processadors, la memòria RAM és la mateixa, etc. etc.
He compilat 4 vegades el Kernel, enganxo els resultats (mentre compilava feia altres coses):
time make bzImage
real 7m22.184s
user 6m13.111s
sys 0m33.118s
time make -j2 bzImage
real 5m0.321s
user 7m49.701s
sys 0m39.302s
time make bzImage
real 7m35.946s
user 6m51.154s
sys 0m36.722s
time make -j2 bzImage
real 4m50.403s
user 7m51.821s
sys 0m40.007s
És a dir, sense el -j2 uns 7min 30 seg. de promig, amb -j2 uns 4min55seg. de promig. No és el doble de ràpid però força millor que el què havia pensat jo.
El processador és un “Genuine Intel(R) CPU T2400 @1.83GHz” am dos cores, a un portàtil IBM Thinkpad.
Potser amb -j3 encara aniria un pel més ràpid…
Leave a Reply