我从github下载了一个golang包。它是中等大小。当从源代码编译它时,我的计算机变慢了,因为我有多个golang编译过程并且需要大量的cpu。
Golang如何让它进行并发编译? 任何params来转换它在编译时使用的cpu数量?
答案 0 :(得分:2)
Go正在使用大量CPU,因为它尝试尽可能快地构建,就像任何其他编译器一样。这也可能是因为你正在使用一个使用cgo的软件包,这会大大增加编译时间,因为编译中型到大型C库通常非常密集。
您可以通过设置GOMAXPROCS
环境变量来控制Go正在使用的进程数。例如GOMAXPROCS=1 go get ...
限制Go只使用1个进程(因而只有1个CPU核心)。但是,这不会影响cgo可能调用的外部编译器使用的进程数。
如果您需要进一步的CPU控制,在基于Unix的系统上,您可以使用nice
命令更改进程的优先级,以便其他程序具有更高的CPU优先级,从而减少计算机的负担。