为什么Go需要如此多的CPU来构建一个包?

为什么Go需要如此多的CPU来构建一个包?,go,Go,我从github下载了一个golang包。它是中号的。当从源代码处编译它时,我的计算机会变慢,因为我有不止一个golang编译过程,而且需要占用大量cpu golang是如何实现并发编译的? 编译时,是否有任何参数可以改变它使用的cpu数量?Go使用了大量cpu,因为它与其他编译器一样,试图以尽可能快的速度编译。这也可能是因为您使用的软件包使用的是cgo,这会大大增加编译时间,因为编译中大型C库通常非常密集 通过设置GOMAXPROCS环境变量,可以控制Go使用的进程数。例如GOMAXPROCS

我从github下载了一个golang包。它是中号的。当从源代码处编译它时,我的计算机会变慢,因为我有不止一个golang编译过程,而且需要占用大量cpu

golang是如何实现并发编译的?
编译时,是否有任何参数可以改变它使用的cpu数量?

Go使用了大量cpu,因为它与其他编译器一样,试图以尽可能快的速度编译。这也可能是因为您使用的软件包使用的是cgo,这会大大增加编译时间,因为编译中大型C库通常非常密集

通过设置
GOMAXPROCS
环境变量,可以控制Go使用的进程数。例如
GOMAXPROCS=1 go-get…
将go限制为仅使用1个进程(因此仅使用1个CPU内核)。但是,这并不影响cgo可以调用的外部编译器使用的进程数

如果需要进一步的CPU控制,在基于Unix的系统上,可以使用
nice
命令更改进程的优先级,以便其他程序具有更高的CPU优先级,从而降低计算机的运行速度