PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   如何用RAMDISK加快compile程式碼的效率? (https://www.pcdvd.com.tw/showthread.php?t=714227)

eric625 2007-04-26 11:49 AM

終於有看到類似的文章了!等各位大大說明

chlang 2007-04-26 12:56 PM

引用:
作者Sleepyhead
請問你的系統環境變數"Tmp"有設到RAMDISK目錄下嗎?有改的話應該會再快一點。
另外如果程式能改用Precompiled Header的話也能加快編譯的速度。
又 用批次檔可能也是問題所在,每次修改不一定要全部程式都要重新編譯,
如果能改用makefile設定好程式的相依性,
或是將舊程式建立為VS的專案,讓VS管理哪些程式須重編譯,
這樣編譯效率會更好。
提供一點過去的經驗,請參考看看。



推這個.

有時候手動寫的的批次檔真的是瓶頸, 改一小段 Source, 批次檔可能會全部重新編譯.

如果能夠只針對更改的那段 Source 作編譯的話, 說不定可以省下更多時間.

Big Peter 2007-04-26 01:47 PM

我覺得問題可能出在 "build all"
一般我們只要 recompile 所修改過的code,再link其它沒修改過的obj就可以了,
應該不會那麼久才對.... :confused: :confused: :confused:

我記得vs會自動判斷那個code有修改過而build,並不會全部整個project重新build
所以問題可能出在那個批次檔...

或許,可以試著把批次檔中沒有修改過的.c檔案 rem 起來,再跑看看有沒有改善...

因才疏學淺,以上只是猜測... 祝好運 :ase

syntech 2007-04-26 03:29 PM

開發測試途中,我通常不使用 build all ,
不然真的會花很多時間.

應該vs 也會知道那些檔案需要重新 compile,
也不需要每次都整個compile一次.

hui0312 2007-04-26 03:43 PM

現在程式越難越負雜, 不是一堆 3rd 的 DLL 就是 Libary, 再整麼精簡效率還是有限...

推薦你用 IncrediBuild. VC 6.0/.Net 2003/2005 都支援....
用可以用網路上其它電腦幫忙 Build 程式, 並可對自己本身雙核以上 CPU 同時 Complier.

用過的人都說讚!

理論上一個程式原本要 30min build, 兩部電腦 ( 2 CPU ) 只要一半左右 ( 15min ) 的時間.

enrico 2007-04-26 04:01 PM

build 當然會比較快, 但是心裡總是毛毛的,
如果compiler判斷錯誤或是有bug, 沒有把我改過的檔案compile好並包進去,
之後在debug的時候會為了這個找不到root cause而花更多的時間.

所以自己的習慣是即便只改了一行, 也是整個code重新做一次,
不過以前組合語言的code用現在的電腦30 secs 就解決了.....

關於code的架構或修改來增進效率, 無奈小弟不才, 以前唸書又沒好好學,
一時之間還沒有那麼強的功力, 目前只能先求弄懂code的內容,
之後再求架構上的瞭解.

還是非常感謝各位的回應, ^^

enrico 2007-04-26 04:19 PM

引用:
作者hui0312
現在程式越難越負雜, 不是一堆 3rd 的 DLL 就是 Libary, 再整麼精簡效率還是有限...

推薦你用 IncrediBuild. VC 6.0/.Net 2003/2005 都支援....
用可以用網路上其它電腦幫忙 Build 程式, 並可對自己本身雙核以上 CPU 同時 Complier.

用過的人都說讚!

理論上一個程式原本要 30min build, 兩部電腦 ( 2 CPU ) 只要一半左右 ( 15min ) 的時間.


好像很有趣, 有空會google一下這個軟體, 因為我有很多空閒的機器可以用,
不過請問一下, 因為我的程式碼是用vendor的程式叫出來compile的, 然後會去呼叫masm, VC, 還有vendor自己的程式來compile程式碼. 這樣也可以用IncrediBuild嗎?

hui0312 2007-04-26 04:28 PM

要看架構耶...我知道它有 PreBuild 還是 Prelink 之類的設定可以讓你先跑一些工具. 不過因為我們公司架購都在 VC 上, 所以他就完全取代了 VC 的 Complier.

不過它每部授權還蠻貴的 249 US 的樣子. 加一顆 CPU 49 的樣子.
可以試用 30 天. 試用版是完整功能.

kyougi 2007-04-26 04:38 PM

vs.net2003本身好像就不支援多cpu或多核吧...

enrico 2007-04-26 05:00 PM

剛剛研究了一下, 我的程式是由vendor開發的IDE介面處理的,
build的時候會先call Visual Studio .NET 2003 Command Prompt 來設定環境,
之後應該是配合bat檔和make file來處理的,
裡面很常出現CL 之類的command, 還有一些vendor要處理自家副檔名檔案的程式.

這樣和一整個VC的project的處理方式是不是不太一樣??


所有的時間均為GMT +8。 現在的時間是12:10 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。