2010-06-11 7 views

Antwort

15

Ich habe immer die Anzahl der Kerne zur Verfügung plus 1 als den empfohlenen Wert

+5

Die Idee hinter dem +1 ist, dass es dabei hilft, dass der/die Prozessor (en) etwas tun, während sie auf Platten-I/O für die nächste Quelldatei warten. –

+0

Einverstanden, plus 2 funktionierte gut für mich. Festplattennutzung –

+0

Siehe [MAKEOPTS = "- j $ {core} +1" ist NICHT die beste Optimierung] (https://blogs.gentoo.org/ago/2013/01/14/makeopts-jcore-1-is-not- the-best-optimization /) – vladr

4

Gerade messen gesehen.

Beginnen Sie mit der Anzahl der Kerne. Und dann fügen Sie eins hinzu, bis Sie das Gefühl haben, dass Sie abnehmende Erträge erzielen.

+1

+1 Experiment ist der einzige Weg, um hier zu gehen. Ich habe eine Menge Multithreaded-Code geschrieben, der I/O-gebunden ist, und Sie können normalerweise die Anzahl der Threads deutlich über die Anzahl der Prozessoren erhöhen und trotzdem Leistungssteigerungen erzielen. Irgendwann fällt dann die Leistung oft dramatisch ab. –

+0

Ich bin hier irgendwie zerrissen, ob das eine gute Idee ist oder nicht. An einem gewissen Punkt erhalten Sie eine erhöhte Leistung nur, weil die Threads einen größeren Zeitschlitz belegen. Das ist keine sehr gute Idee. Wenn der Build-Prozess so wichtig ist, sollte man lieber weniger Threads verwenden und das "nette" Niveau erhöhen. –

+0

@Mads: Was ich hier spreche, ist, dass ein Build-Prozess viel Festplattenzugriff machen kann. Eine Anzahl von Threads kann schnell blockiert werden und auf die Festplatte warten, während die anderen (eine pro Kern) tatsächlich kompilieren können. – quamrana

Verwandte Themen