Quando (ri) costruisco sistemi di grandi dimensioni su un computer desktop / laptop, dico makedi usare più di un thread per accelerare la velocità di compilazione, in questo modo:
$ make -j$[ $K * $C ]
Dove $Csi suppone per indicare il numero di core (che possiamo assumere per essere un numero con una cifra) la macchina ha, mentre $Kè qualcosa che variano da 2a 4, a seconda del mio umore.
Quindi, ad esempio, potrei dire make -j12se ho 4 core, indicando makedi usare fino a 12 thread.
La mia logica è che se uso solo i $Cthread, i core saranno inattivi mentre i processi sono occupati a recuperare i dati dalle unità. Ma se non limito il numero di thread (ovvero make -j) corro il rischio di perdere tempo a cambiare contesto, a corto di memoria o peggio . Supponiamo che la macchina abbia dei $Mconcerti di memoria (dov'è $Mnell'ordine di 10).
Quindi mi chiedevo se esiste una strategia consolidata per scegliere il numero più efficiente di thread da eseguire.
