[技術] 有甚麼平行編譯的方法嗎?

看板 Soft_Job
作者 sohumi (皮老闆)
時間 2015-07-31 17:12:41
留言 32則留言 (8推 0噓 24→)

因系統規模不斷擴大,幾百個類別(c++)編譯一次要等3~5分鐘, 整天都耗在等compile時間. 有沒有使用兩個cpu or 兩台主機 or gpu來平行編譯的方法? 原po使用VisualStudio and Xcode --
※ 批踢踢實業坊(ptt.cc), 來自: 36.229.221.169
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1438333965.A.CF0.html

robler: 你應該想一下只編譯有需要的類別的方法吧@@ 07/31 17:13

azureblaze: msdn.microsoft.com/en-us/library/bb385193.aspx 07/31 17:19

PhoenixSu: VS有支援平行編譯 07/31 17:30

PhoenixSu: 不然就抽 interface 做 partial build 07/31 17:31

sohumi: VS是以cpu thread做平行編譯, 應該沒有多cpu吧? 07/31 17:41

leeheng: make 不就是幫你處理某些檔案沒改過不用編的事情 07/31 18:13

leeheng: 不太清楚 vs 和 xcode 怎麼做,不過他們背後應該也是有 07/31 18:14

leeheng: 指令讓你搭配 command line 來做吧? 07/31 18:15

leeheng: 或是如一樓所說只編譯有改過的方法,剩下用linker 做 07/31 18:16

ousapas: Google好像有做一個 distributed compile system 07/31 18:43

badyy: incredibuild, 不過沒用過! 07/31 18:55

deray: 一定要全部rebulid嗎? 沒改過的何必? 07/31 19:01

deray: 首先xcode如果使用.a檔 07/31 19:02

deray: vs 使用.dll檔 那就沒有rebulid所有code的問題 07/31 19:02

sohumi: compiler會抓取所有refer到的檔案重新編譯,換言之如果改了 07/31 19:17

sohumi: 基底類別則重新編譯的檔案就多了. 這應該有參數可以調整 07/31 19:18

sohumi: 不過現在是戰爭時期,想先看看有沒有直接硬體可以cover的 07/31 19:19

sohumi: 方法以節省時間 07/31 19:19

wellkom: 連 make 都可以,怎麼可能 VS 沒這功能 +_+ 07/31 21:34

cobrasgo: 這個問題分成硬體和軟體兩個層面,硬體的部份就用server 08/01 09:47

cobrasgo: 等級的機器,軟體的部份先檢討一下一定要全部重build嗎 08/01 09:47

kwpn: 幾百個類別..總可以區分成幾個模組吧,切成不同的dll就好了 08/01 14:35

kwpn: 有修改過的dll就只要重編那個dll,不需要所有程式都重編 08/01 14:36

kwpn: 靠杯...還以為在C++版 08/01 14:38

avhacker: incredibuild 超強,大概十年前就開始用 08/02 01:28

avhacker: 一次拉超過十台機器一起 build,超爽 der 08/02 01:28

avhacker: 還會以圖形即時顯示多台機器編譯的狀況,超清楚的 08/02 01:30

avhacker: http://goo.gl/kM5SIB 08/02 01:30

jily: incredibuild +1 08/02 08:56

jily: 不過一次才3~5分鐘 用這個好像有點殺雞用牛刀的感覺~ 08/02 08:57

globelin: 3-5 分? android 一包算小時的阿... 08/02 12:01

readonly: 你有編過 kernel 和 android 嗎? 08/07 20:44

您可能感興趣