Sayangnya, bahkan bagian berbeda dari bangunan yang sama mungkin optimal dengan nilai faktor j yang saling bertentangan, tergantung pada apa yang sedang dibangun, bagaimana, sumber daya sistem mana yang menjadi hambatan pada saat itu, apa lagi yang terjadi pada mesin pembuat, apa yang terjadi di jaringan (jika menggunakan teknik build terdistribusi), status / lokasi / kinerja banyak sistem caching yang terlibat dalam build, dll.
Mengkompilasi 100 file C kecil mungkin lebih cepat daripada mengkompilasi satu file besar, atau sebaliknya. Membangun kode berbelit-belit kecil bisa lebih lambat daripada membuat kode lurus / linier dalam jumlah besar.
Bahkan konteks masalah build - menggunakan faktor aj dioptimalkan untuk membangun pada server khusus yang disesuaikan untuk bangunan eksklusif, non-tumpang tindih dapat menghasilkan hasil yang sangat mengecewakan ketika digunakan oleh pengembang membangun secara paralel pada server bersama yang sama (masing-masing pembangunan tersebut mungkin membutuhkan lebih banyak waktu daripada mereka semua digabungkan jika serial) atau di server dengan konfigurasi perangkat keras yang berbeda atau divirtualisasikan.
Ada juga aspek ketepatan spesifikasi bangunan. Bangun yang sangat kompleks mungkin memiliki kondisi balapan yang menyebabkan kegagalan bangun intermiten dengan tingkat kejadian yang dapat sangat bervariasi dengan peningkatan atau penurunan faktor j.
Saya bisa terus dan terus. Intinya adalah bahwa Anda harus benar mengevaluasi Anda membangun di sangat konteks Anda yang ingin faktor j dioptimalkan. Komentar @Jeff Schaller berlaku: lakukan iterate sampai Anda menemukan yang terbaik. Secara pribadi saya akan mulai dari nilai nproc, coba ke atas terlebih dahulu dan ke bawah hanya jika upaya ke atas menunjukkan degradasi langsung.
Mungkin ide yang baik untuk pertama-tama mengukur beberapa bangunan identik dalam konteks yang seharusnya identik hanya untuk mendapatkan gambaran tentang variabilitas pengukuran Anda - jika terlalu tinggi dapat membahayakan seluruh upaya pengoptimalan Anda (variabilitas 20% akan sepenuhnya melampaui peningkatan 10% / membaca degradasi dalam pencarian faktor j).
Terakhir, IMHO lebih baik menggunakan server (adaptif) jika didukung dan tersedia alih-alih faktor j tetap - ini secara konsisten memberikan kinerja pembangunan yang lebih baik di rentang konteks yang lebih luas.
ccache
untuk nanti membangun kembali tapi ini PL