-5
我已經從github上下載了一個golang包。它在中等大小。當從源代碼編譯時,我的編譯器變慢了,因爲我有多個golang編譯過程,並且它佔用了很多CPU。爲什麼Go需要這麼多CPU來構建一個包?
golang如何讓它做併發編譯? 任何參數來編譯時使用的CPU的數量?
我已經從github上下載了一個golang包。它在中等大小。當從源代碼編譯時,我的編譯器變慢了,因爲我有多個golang編譯過程,並且它佔用了很多CPU。爲什麼Go需要這麼多CPU來構建一個包?
golang如何讓它做併發編譯? 任何參數來編譯時使用的CPU的數量?
Go使用了很多CPU,因爲它像其他編譯器一樣儘可能快地構建。這也可能是因爲你正在使用一個使用cgo的軟件包,因爲編譯中等到大型的C庫往往是相當密集的,這會大大增加編譯時間。
您可以通過設置GOMAXPROCS
環境變量來控制Go正在使用的進程數。如GOMAXPROCS=1 go get ...
限制只能使用1個進程(因此只有1個CPU核心)。但是,這不會影響cgo可能調用的外部編譯器使用的進程數量。
如果您需要進一步的CPU控制,在基於Unix的系統上,您可以使用nice
命令來更改進程的優先級,以使其他程序具有更高的CPU優先級,從而使您的計算機更加緩慢。