2016-08-21 89 views
-5

我已经从github上下载了一个golang包。它在中等大小。当从源代码编译时,我的编译器变慢了,因为我有多个golang编译过程,并且它占用了很多CPU。为什么Go需要这么多CPU来构建一个包?

golang如何让它做并发编译? 任何参数来编译时使用的CPU的数量?

回答

2

Go使用了很多CPU,因为它像其他编译器一样尽可能快地构建。这也可能是因为你正在使用一个使用cgo的软件包,因为编译中等到大型的C库往往是相当密集的,这会大大增加编译时间。

您可以通过设置GOMAXPROCS环境变量来控制Go正在使用的进程数。如GOMAXPROCS=1 go get ...限制只能使用1个进程(因此只有1个CPU核心)。但是,这不会影响cgo可能调用的外部编译器使用的进程数量。

如果您需要进一步的CPU控制,在基于Unix的系统上,您可以使用nice命令来更改进程的优先级,以使其他程序具有更高的CPU优先级,从而使您的计算机更加缓慢。

相关问题