Ketika saya (kembali) membangun sistem besar pada komputer desktop / laptop, saya meminta makeuntuk menggunakan lebih dari satu utas untuk mempercepat kecepatan kompilasi, seperti ini:
$ make -j$[ $K * $C ]
Dimana $Cseharusnya menunjukkan jumlah core (yang dapat kita asumsikan menjadi nomor dengan satu digit) mesin memiliki, sementara $Kadalah sesuatu yang saya bervariasi dari 2ke 4, tergantung pada suasana hati saya.
Jadi, misalnya, saya dapat mengatakan make -j12jika saya memiliki 4 core, yang menunjukkan makeuntuk menggunakan hingga 12 utas.
Alasan saya adalah, bahwa jika saya hanya menggunakan $Cutas, inti akan menganggur saat proses sibuk mengambil data dari drive. Tetapi jika saya tidak membatasi jumlah utas (yaitu make -j) saya berisiko membuang-buang waktu untuk mengubah konteks, kehabisan memori, atau lebih buruk . Mari kita asumsikan mesin memiliki $Mgigs of memory (di mana $Mberada di urutan 10).
Jadi saya bertanya-tanya apakah ada strategi yang ditetapkan untuk memilih jumlah utas yang paling efisien untuk dijalankan.
