2009年12月5日 星期六

Make under multicore

現在隨便買都是Multicore CPU

但是常常在build程式的時候還是一樣慢

事實上GNU Make提供並行建構有段時間了

而且使用方式很簡單

只要在Make後面加-j n, n為最大任務數(# Thread)

ex:
make -j 8

n要多大多小視CPU核心而定

個人習慣上n設為 2*#core

i7上就設

make -j 16

不過這不是加速編譯的萬靈藥

在編譯初次build GCC的時候用了絕對會錯誤...

事實上原因在於舊有的許多Makefile在相依性上並沒有設計的很好所造成

但是在之後(修改部分檔案)重新建置時就很管用

尤其是GCC改md的部份動一個就幾乎要重編譯的情況下很管用



另外如果make -j n的過程如果錯誤的話再打一次試試看

真的不行的話就make clean all認命的慢慢的build吧...

沒有留言:

張貼留言