compiler時有夠久 bcb6.0 |
尚未結案
|
waterfat
一般會員 發表:22 回覆:16 積分:7 註冊:2003-11-10 發送簡訊給我 |
小弟因為專題需第一次使用bcb這個開發軟體(之前有用過vb)
目前才把整個專題外觀介面拉一拉整合成雛型(約20幾個form組成)
每次compiler都超久(約二分鐘),我不設成standalone(就是project option裡面rtl和),用動態compiler也差不多久 不知道是那裡出問題 現在只要改一些東西compiler就要放著讓他跑
total line約650000行
若以後程式要正式開始寫,把其他程式放進來,開發過程不是光等這就很麻煩了
我用過vc 或vb也不會感覺到這麼久呀
有沒有什麼辦法讓compiler快一點
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
不知道您的 CPU 多快?記憶體多大?
如果不快不大,那慢是很正常的。 如果硬體就是不快,建議使用 Make Project 不要使用 Build Project,這樣會快一些。
所謂的 Make Project 就是只 Compile 更新的部分,如果 .h/.hpp 檔有更新,則有 include 的 .cpp 檔都需要 Compile,如果只有 .c/.cpp 檔有更新,則只有更新的 .c/.cpp 檔需要 Compile。
所謂的 Build Project 就是不論檔案是否有更新,都會重新 Compile。
另外,設成 standalone 或使用 .bpl 並不會差太多的時間,因為那只有在 Link 階段會有不同,在 Compile 階段才是比較花時間的。 最後,再建議您,重整一下您的硬碟,也可以加快一些些速度。 以我的系統 P4 2.0GHz, 512MB RAM, NB 用硬碟(效能較差),
主程式 .cpp/.h 的程式碼加起來有 2MB,Build 一次的時間大約是 70 秒左右,如果是 Make 按修改多寡 1 秒到數十秒都有可能。提供參考。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
waterfat
一般會員 發表:22 回覆:16 積分:7 註冊:2003-11-10 發送簡訊給我 |
你好
我的電腦是p42.4G 512M
我剛改一些東東 按build 還是一樣久(只改一行程式) 約二分十秒
我修改完都是按 Run(很像play那顆) 不知道這跟make和build有什麼不一樣?
我以為這就是compiler?
若想看到執行的畫面以確認程式沒寫錯 似乎不能用make 或build 因為這跑完
也沒執行畫面出來? 會不會是我寫程式的"方法"錯誤
我是有很多的form 然後用file裡面的include unit head
把新的form include進來 然後新的form也include 舊的form進來
就是例:form1=>form2 再 form2=>form1
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 你好 我的電腦是p42.4G 512M 我剛改一些東東 按build 還是一樣久(只改一行程式) 約二分十秒 我修改完都是按 Run(很像play那顆) 不知道這跟make和build有什麼不一樣? 我以為這就是compiler? 若想看到執行的畫面以確認程式沒寫錯 似乎不能用make 或build 因為這跑完 也沒執行畫面出來? 會不會是我寫程式的"方法"錯誤 我是有很多的form 然後用file裡面的include unit head 把新的form include進來 然後新的form也include 舊的form進來 就是例:form1=>form2 再 form2=>form1按 Run (Play) 就等於是 Make project。 您可以試試 Build 或 Make 完後,再按 Run 應該是立刻就 Run。 Build 一定要花較多的時間,而 Make 則要視檔案內容修改的程度而定,但一定不會大於 Build 所花的時間。 至於程式寫作的問題.... 其實,您可以在 Make 時,注意看看有那些檔案被 compile 了。正常的話,不論您如何 include 來 include 去,如果只有修改 unit1.cpp 則,在 build 時應該只會 compile unit1.cpp,但如果您修改了 unit1.h 就有可能因為 unit2.cpp unit3.cpp 也有 include 它,而導致 unit1.cpp,unit2.cpp,unit3.cpp 都需要 compile。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 插個花 > 當然, 一般情況用 > (我猜應該是 >>< face="Verdana, Arial, Helvetica"> 有很多原因讓 BCB Compile 要比 Delphi 久很多,其中的一個原因就是 BCB 對於 include 檔案的處理,Delphi 所使用的 uses 可以是已 compile 好的,而 BCB include 的一定是文字檔,這使得 Delphi 不論用 build/make 光是在 include 的部分,就可以比 BCB 快很多。 而 BCB 比 VC 要慢... 我想,原因一是使用了 VCL 元件,那就有一堆 .h/.hpp 要 compile,另一個可能的原因是 BCB 的 compiler 就是比其他的 C/C 要慢...我只說是可能,因為 compile 的環境不同, include .h/.hpp 及其所 include .h/.hpp 的數量不同,這些都會造成 compile 的速度不同。畢竟 BCB 是由 Delphi 來的,原來的設計架構在 Delphi 中一定是最快的,但已轉了一手,有些也許為了相容於 Delphi 及其他的 C/C ,而使得 compiler 必需作較複雜的判斷或檢查,慢就免不了了。 回頭想想 BCB 的好處吧,可以使用 Delphi code 及 VC code,這都不是 Delphi 及 VC 可以做到的 而 class="code"> unit.cpp 有 include unit.h unit.h 有 include abc.h 此時 unit.cpp 改變或 unit.h 改變, unit.cpp 在 make 時就會 compile, 但 abc.h 改變時,在 unit.cpp 的 make 判斷中不會判斷到,所以就不會 compile,如果您有一些 inline function 或在 abc.h 內的物件中新增了屬性或事件,此時如果只有 make 都會因沒有 compile 到 abc.h 而發生不如預期的結果。 範例一:unit.cpp 有 include unit.h 也有 include abc.h此時 unit.cpp 改變或 unit.h 改變或 abc.h 改變, unit.cpp 在 make 時就會 compile,這樣就不會有因 abc.h 改變但程式不改變或不如預期的狀況。 了解這點,在何時要使用 make 或 build 應該就可以隨心所欲囉 <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 仔細想像, 就如 dllee 大所說的依存關係, 如果手動寫的 makefile 寫不好, 也是會發生遺漏的問題, 謝謝 dllee 大 ^__^想必您也有寫過 makefile 的經驗,這年頭會自己寫 makefile 的已經不多了 在我網站中的經費管理及日記帳 > <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
bruce0211
版主 發表:157 回覆:668 積分:279 註冊:2002-06-13 發送簡訊給我 |
|
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
waterfat
一般會員 發表:22 回覆:16 積分:7 註冊:2003-11-10 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
Make project --- Make 目前的 project
Make all project --- Make 所有的 projects
有差別只在於您如果有使用 Project Group (就是可以放很多個 projects),make all project 就會將 Project Group 內的所有 project 按順序一個一個 make,如果您的 Project Group 只有一個 project ,那使用 make project 與 make all project 的結果是一樣的。 Q: 那我要如何得知是否 project group 內有一個以上的 project 呢?
A: 由 BCB 選單中的 View → Project Manager 叫出 project manager,在 Project Group 之後的那一層 tree 有幾項,就表示有幾個 project,也可以從 project manager 上方的 combobox 下拉看看有幾項,就表示有幾個 project。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
CuteBabyBoy
初階會員 發表:18 回覆:97 積分:48 註冊:2003-07-11 發送簡訊給我 |
|
lu
高階會員 發表:11 回覆:189 積分:195 註冊:2003-11-19 發送簡訊給我 |
|
waterfat
一般會員 發表:22 回覆:16 積分:7 註冊:2003-11-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |