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

看板Soft_Job作者 (皮老闆)時間9年前 (2015/07/31 17:12), 編輯推噓8(8024)
留言32則, 15人參與, 最新討論串1/1
因系統規模不斷擴大,幾百個類別(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

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

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

07/31 17:30, , 3F
VS有支援平行編譯
07/31 17:30, 3F

07/31 17:31, , 4F
不然就抽 interface 做 partial build
07/31 17:31, 4F

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

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

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

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

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

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

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

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

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

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

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

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

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

07/31 19:19, , 18F
方法以節省時間
07/31 19:19, 18F

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

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

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

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

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

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

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

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

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

08/02 01:30, , 28F
08/02 01:30, 28F

08/02 08:56, , 29F
incredibuild +1
08/02 08:56, 29F

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

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

08/07 20:44, , 32F
你有編過 kernel 和 android 嗎?
08/07 20:44, 32F
文章代碼(AID): #1LkpmDpm (Soft_Job)