Golang: Mengesahkan Bilangan Pemproses yang Diperuntukkan kepada Program
Menentukan bilangan pemproses yang diperuntukkan kepada program Go adalah penting untuk mengoptimumkan prestasi. Artikel ini menangani persoalan tentang cara mengesahkan bilangan pemproses yang menjalankan program apabila masa jalan. Pembolehubah GOMAXPROCS diubah suai.
Untuk mengesahkan pemproses yang diperuntukkan, Go menyediakan fungsi runtime.NumCPU(). Fungsi ini mendapatkan semula bilangan maksimum CPU logik yang tersedia pada sistem hos. Begini cara untuk menggunakannya:
fmt.Println("Number of allocated processors:", runtime.NumCPU())
Bilangan maksimum CPU logik yang boleh digunakan oleh program ialah masa jalan minimum.GOMAXPROCS(0) dan masa jalan.NumCPU(). Nilai ini boleh diperolehi menggunakan fungsi MaxParallelism:
func MaxParallelism() int { maxProcs := runtime.GOMAXPROCS(0) numCPU := runtime.NumCPU() if maxProcs < numCPU { return maxProcs } return numCPU }
Dengan membandingkan output runtime.NumCPU() dengan runtime.MaxParallelism(), anda boleh menentukan bilangan sebenar pemproses yang diperuntukkan kepada program.
Walaupun apabila GOMAXPROCS ditetapkan kepada nilai yang lebih besar daripada 1, arahan 'atas' mungkin menunjukkan 'a.out' proses menggunakan kurang daripada 100% sumber. Ini kerana penjadual masa jalan Go mungkin tidak menggunakan sepenuhnya semua pemproses yang tersedia pada setiap masa. Ia bergantung pada faktor seperti keselarasan program, penjadualan tugas dan beban sistem.
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Bilangan Pemproses yang Digunakan oleh Program Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!