全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2101
推到 Plurk!
推到 Facebook!

在BCB中使用VC導入的Dll檔會與在VC使用時不同嗎?(速度)

尚未結案
leochen1204
一般會員


發表:10
回覆:14
積分:4
註冊:2008-11-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-24 19:15:14 IP:203.67.xxx.xxx 訂閱
我的Dll檔是從VC轉換過來的, 由蕭沖大大的幫忙.
http://delphi.ktop.com.tw/board.php?cid=168&fid=917&tid=96226

但是我現在使用之後發現, 一樣功能的程式在VC中較快, 在BCB中較慢.
我就用timeGetTime的方法去看看程式慢在哪裡.
結果是Dll裡的I/O指令, 每次呼叫都會花3~4ms, 大量呼叫導致我的BCB程式比VC的程式慢了2倍以上...

請問這是DLL檔的問題嗎? 或是有其他可能呢?
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-25 00:05:27 IP:218.161.xxx.xxx 訂閱
你好,

近來在趕捷運站的案子,快結案了,但超忙的… 可能沒法有太多的幫忙。

但是就你提到是否轉換會造成速度變慢? 這問題理論上是不存在的,因為改的是pe檔頭或是lib裡的資訊,這部份是在link時才會用到,只是告知link去哪裡找dll中的function,一但在link時確定了,就確立了。當成為exe檔後再來呼叫dll,完全沒有呼叫快慢的問題,若你真的要說有… 那肯定在1ms以下。就我所知vc在link dll的方式與bcb是有一點點小小的不一樣,但最多差一個微指令(jump),是非常非常沒感覺到的吧…

所以我個人大膽的猜測問題應該是排除dll的那些部份程式碼。其實…vc的效能理論上應該比bcb的好,因為bcb的framework包的比mfc來得更高階,所以慢一點應該是正常。以上是純就理論與猜想,但實際上沒有程式碼其實是很難就斷言。


===================引 用 leochen1204 文 章===================
我的Dll檔是從VC轉換過來的, 由蕭沖大大的幫忙.
http://delphi.ktop.com.tw/board.php?cid=168&fid=917&tid=96226

但是我現在使用之後發現, 一樣功能的程式在VC中較快, 在BCB中較慢.
我就用timeGetTime的方法去看看程式慢在哪裡.
結果是Dll裡的I/O指令, 每次呼叫都會花3~4ms, 大量呼叫導致我的BCB程式比VC的程式慢了2倍以上...

請問這是DLL檔的問題嗎? 或是有其他可能呢?
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-03-29 9:29:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!