2016-08-21 91 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優先級,從而使您的計算機更加緩慢。

相關問題