Khi tôi (tái) xây dựng các hệ thống lớn trên máy tính để bàn / máy tính xách tay, tôi bảo makesử dụng nhiều hơn một luồng để tăng tốc độ biên dịch, như sau:
$ make -j$[ $K * $C ]
Trong trường hợp $Ccó nghĩa vụ phải chỉ ra số lượng lõi (mà chúng ta có thể giả định là một số với một chữ số) máy có, trong khi $Klà một cái gì đó tôi thay đổi từ 2tới 4, tùy thuộc vào tâm trạng của tôi.
Vì vậy, ví dụ, tôi có thể nói make -j12nếu tôi có 4 lõi, biểu thị makesẽ sử dụng tối đa 12 luồng.
Lý do của tôi là, nếu tôi chỉ sử dụng các $Cluồng, các lõi sẽ không hoạt động trong khi các quá trình đang bận tìm nạp dữ liệu từ các ổ đĩa. Nhưng nếu tôi không giới hạn số lượng chủ đề (nghĩa là make -j) tôi sẽ gặp rủi ro lãng phí thời gian chuyển đổi bối cảnh, hết bộ nhớ hoặc tệ hơn . Giả sử máy có nhiều $Mhợp đồng bộ nhớ ( $Mtheo thứ tự 10).
Vì vậy, tôi đã tự hỏi nếu có một chiến lược được thiết lập để chọn số lượng luồng hiệu quả nhất để chạy.
