Bir masaüstü / dizüstü bilgisayarda büyük sistemleri yeniden make
oluşturduğumda, derleme hızını hızlandırmak için birden fazla iş parçacığı kullanmayı söylerim :
$ make -j$[ $K * $C ]
Nerede $C
sayısını belirtmek gerekiyordu çekirdek iken, makine vardır (biz bir rakam ile sayı olması varsayabiliriz) $K
Ben değişir şeydir 2
üzere 4
, benim ruh bağlı.
Yani, örneğin, make -j12
12 çekirdeği make
kullanmayı belirten 4 çekirdeğim varsa söyleyebilirim .
Benim mantığım, $C
süreçleri sürücülerden veri almakla meşgulken yalnızca iş parçacıkları kullanırsam çekirdeklerin boşta olacağıdır. Ama iş parçacığı sayısını sınırlamazsam (yani make -j
) zaman değiştirme bağlamları, bellek yetersiz ya da daha kötü zaman kaybetme riskini alırım . Diyelim ki makinede $M
bellek var (10'lu $M
sırada).
Bu yüzden, çalışacak en etkili iş parçacığı sayısını seçmek için yerleşik bir strateji olup olmadığını merak ediyordum.