Sobes.tech
Senior

Mi az a GOMAXPROCS? Mi történik, ha egy nagyon nagy számot adunk meg?

sobes.tech MI

Válasz az MI-től

GOMAXPROCS — это переменная окружения или настройка в Go, которая определяет максимальное количество операционных системных потоков (OS threads), которые планировщик Go может использовать для выполнения горутин одновременно. По умолчанию она равна количеству логических процессоров на машине.

Если задать очень большое число для GOMAXPROCS, например, значительно превышающее количество доступных ядер, то это приведёт к избыточному переключению контекста между потоками, увеличению накладных расходов на планирование и, как следствие, снижению производительности программы. В худшем случае это может привести к деградации работы из-за чрезмерной конкуренции за ресурсы CPU.

Пример установки GOMAXPROCS в коде:

import (
    "runtime"
)

func main() {
    runtime.GOMAXPROCS(8) // разрешаем использовать до 8 потоков
    // ...
}

Рекомендуется устанавливать GOMAXPROCS равным количеству логических ядер или немного больше, но не слишком большое значение.