Golang: プログラムに割り当てられたプロセッサ数の確認
Go プログラムに割り当てられたプロセッサの数を決定することは、パフォーマンスを最適化するために重要です。この記事では、runtime.GOMAXPROCS 変数が変更されたときに、プログラムを実行しているプロセッサの数を確認する方法について説明します。
割り当てられたプロセッサを確認するために、Go は runtime.NumCPU() 関数を提供します。この関数は、ホスト システム上で使用可能な論理 CPU の最大数を取得します。使用方法は次のとおりです。
fmt.Println("Number of allocated processors:", runtime.NumCPU())
プログラムが利用できる論理 CPU の最大数は、runtime.GOMAXPROCS(0) と runtime.NumCPU() の最小値です。この値は、MaxParallelism 関数を使用して取得できます。
func MaxParallelism() int { maxProcs := runtime.GOMAXPROCS(0) numCPU := runtime.NumCPU() if maxProcs < numCPU { return maxProcs } return numCPU }
runtime.NumCPU() の出力を runtime.MaxParallelism() と比較することで、プログラムに割り当てられた実際のプロセッサ数を判断できます。
GOMAXPROCS が 1 より大きい値に設定されている場合でも、「top」コマンドを実行すると、「a.out」プロセスの使用率が 1 未満であることが表示される場合があります。リソースの 100%。これは、Go ランタイム スケジューラが常にすべての利用可能なプロセッサを完全に利用できるとは限らないためです。それは、プログラムの同時実行性、タスクのスケジュール、システム負荷などの要因によって異なります。
以上がGo プログラムで使用されているプロセッサの数を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。