เมื่อฉัน (อีกครั้ง) สร้างระบบขนาดใหญ่บนคอมพิวเตอร์เดสก์ท็อป / แล็ปท็อปฉันบอกmake
ให้ใช้มากกว่าหนึ่งเธรดเพื่อเร่งความเร็วในการรวบรวมเช่นนี้:
$ make -j$[ $K * $C ]
ที่$C
ควรจะระบุจำนวนแกน (ซึ่งเราสามารถถือว่าเป็นตัวเลขที่มีหนึ่งหลัก) เครื่องมีในขณะที่$K
เป็นสิ่งที่ฉันแตกต่างจาก2
ไป4
ขึ้นอยู่กับอารมณ์ของฉัน
ตัวอย่างเช่นฉันอาจบอกว่าmake -j12
ฉันมี 4 แกนระบุว่าmake
จะใช้ถึง 12 กระทู้
เหตุผลของฉันคือถ้าฉันใช้เฉพาะ$C
เธรดแกนจะว่างขณะที่กระบวนการกำลังดึงข้อมูลจากไดรฟ์ แต่ถ้าฉันไม่ จำกัด จำนวนเธรด (เช่นmake -j
) ฉันเสี่ยงที่จะเสียเวลาในการสลับบริบท, หน่วยความจำไม่เพียงพอหรือแย่กว่านั้น สมมติว่าเครื่องมี$M
หน่วยความจำกิ๊ก ( $M
อยู่ในอันดับ 10)
ดังนั้นฉันสงสัยว่ามีกลยุทธ์ที่จัดตั้งขึ้นเพื่อเลือกจำนวนเธรดที่มีประสิทธิภาพมากที่สุดที่จะเรียกใช้หรือไม่