線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1605
推到 Plurk!
推到 Facebook!

compiler時有夠久 bcb6.0

尚未結案
waterfat
一般會員


發表:22
回覆:16
積分:7
註冊:2003-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-19 15:21:26 IP:140.118.xxx.xxx 未訂閱
小弟因為專題需第一次使用bcb這個開發軟體(之前有用過vb) 目前才把整個專題外觀介面拉一拉整合成雛型(約20幾個form組成) 每次compiler都超久(約二分鐘),我不設成standalone(就是project option裡面rtl和),用動態compiler也差不多久 不知道是那裡出問題 現在只要改一些東西compiler就要放著讓他跑 total line約650000行 若以後程式要正式開始寫,把其他程式放進來,開發過程不是光等這就很麻煩了 我用過vc 或vb也不會感覺到這麼久呀 有沒有什麼辦法讓compiler快一點
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-19 21:44:55 IP:211.76.xxx.xxx 未訂閱
不知道您的 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-23 00:27:33 IP:61.229.xxx.xxx 未訂閱
你好 我的電腦是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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-24 09:17:15 IP:211.76.xxx.xxx 未訂閱
引言: 你好 我的電腦是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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-24 09:56:21 IP:210.243.xxx.xxx 未訂閱
插個花  > 當然, 一般情況用 > (我猜應該是
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-25 09:10:21 IP:211.76.xxx.xxx 未訂閱
引言: 插個花 > 當然, 一般情況用 > (我猜應該是 >< 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-25 10:46:53 IP:210.243.xxx.xxx 未訂閱
謝謝 dllee 大的精闢解說  仔細想像, 就如
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-25 12:53:52 IP:61.231.xxx.xxx 未訂閱
引言: 仔細想像, 就如 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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-25 13:39:04 IP:211.21.xxx.xxx 未訂閱
雖然 bcb compiler 時間比 Delphi 稍微久一點 不過沒有上面形容的那麼誇張 我平常是用 BCB5.0/6.0 , Delphi 5.0/7.0 混用 bcb 寫 POS 前台/後台 , Delphi寫 POS 後台 在 BCB 跟 Delphi 上寫的程式碼複雜度差不多 怎麼從來沒有感覺有這種困擾.... 發表人 - bruce0211 於 2003/11/25 13:42:20
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-25 14:05:19 IP:210.243.xxx.xxx 未訂閱
引言: 想必您也有寫過 makefile 的經驗,這年頭會自己寫 makefile 的已經不多了 < face="Verdana, Arial, Helvetica"> Makefile 真正去了解後, 就會發現是好物啊 < > 只要是想自動化的, 大概都可以靠她幫助你, 在我了解 > 有時後, 古老的東西真的是有價值所在 < > 發表人 -
waterfat
一般會員


發表:22
回覆:16
積分:7
註冊:2003-11-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-11-29 20:23:15 IP:61.229.xxx.xxx 未訂閱
感謝大家的的回答 最後再問一個小小的問題 大家說的make跟build 是Make all project還是make project 因為我自從改用這二個後 雖然有比直接按run快一點點 原本是2分半 現在大約 2分 不知道是不是我按make all project原因
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-12-02 08:58:47 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-12-02 10:04:29 IP:218.167.xxx.xxx 未訂閱
我先前也遇過需 compiler 約 10 ~ 20 分鐘的程式,實在很耗時,而 Make Project 有時結果還不正確,反而還要離清問題,我覺得 Build Project 才比較能確實的 compiler。 但 compiler 時間過久的確也蠻困擾的,我覺得您可以把一部份程式寫成 Lib or dll ,這樣您主架構的程式碼就變短了,如果還不夠就寫成 Com Object (我也在學習中) 這樣除了更精簡,更能提高效率。 以上是小弟小小的經驗,很高興和大家一起討論
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-12-02 18:20:57 IP:211.72.xxx.xxx 未訂閱
偶個人的經驗倒是沒那麼慘ㄝ.... 大概是偶寫程式時,喜歡將程式拆成好塊,然後一塊寫一個 OR 多個物件, 1~3個物件(視程式碼多寡)一個cpp 這樣每次MAKE PROJECT,都粉快阿,因為每次改的CODE只有幾個CPP而已 還有根據偶個人的經驗,把RAM插多一點,會加快許多 最起碼128MB , 256MB 還可以, 能512MB則更好 畢竟BCB實在粉耗系統資源....
waterfat
一般會員


發表:22
回覆:16
積分:7
註冊:2003-11-10

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-12-02 20:36:30 IP:61.229.xxx.xxx 未訂閱
謝謝大家 看來只好多學學其他寫法 可是這只是要交作業的呀><
系統時間:2024-05-04 14:50:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!