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

全域proc or func 會佔記憶體嗎?

尚未結案
s07452
一般會員


發表:20
回覆:16
積分:7
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-15 18:04:04 IP:61.56.xxx.xxx 未訂閱
也許問的不是很好,請見諒: 全域的func or proc會佔記憶體空間嗎? 此處指的並不是說要執行時載入記憶體的佔據記憶體空間 而是整個proj執行時、此proc or func未使用時 仍佔據記憶體嗎?如同變數那樣? 延伸問一: 若是NO,那麼請問DELPHI是利用何種方式找到此函數? 延伸問二: Object的member function,當不具有生命週期的時候 也會佔用記憶體空間嗎? 同延伸問一,class是如何找到member function來使用呢?
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-16 06:56:01 IP:203.222.xxx.xxx 未訂閱
全域的func or proc會佔記憶體空間嗎? ans : 只要不是動態載入的,都會存在於記憶體內(即佔記憶體空間) 1. Yes , so ...... 2. Yes 2-1. 用記憶體定址,詳細內容請自行看書吸收,牽涉多個領域,就不多說
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-16 09:25:32 IP:218.80.xxx.xxx 未訂閱
Hi: func or proc無輪是否執行都會佔用記憶體,否則如何找到它們. VCL和Win的回調函數巧妙結合實現找到要執行的方法.詳細請參考 李維 Object的member function,當不具有生命週期的時候會佔用記憶體空間,在VMT(動態方法表單)中.從VMT中搜索到到調用執行. ======================================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
s07452
一般會員


發表:20
回覆:16
積分:7
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-16 10:23:10 IP:61.56.xxx.xxx 未訂閱
感謝回答。 再請問: 若為了節省記憶體空間,而將全域func改寫成class的member func 又因為Delphi允許就算Object not create也可以呼叫使用此member func 這樣的寫法、以整個proj的觀點來看、是較好的嗎? 或者仍應該維持寫成全域的func ?
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-16 10:29:03 IP:218.80.xxx.xxx 未訂閱
將全域func改寫成class的member func是否能節省記憶體我不確定. 但是這樣寫以整體觀念看要好. ======================================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。 發表人 - Leway 於 2004/03/16 10:30:10
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-17 09:45:22 IP:218.80.xxx.xxx 未訂閱
補充一些內容 一般函數只是普通的指針地址,在32位的win系統中是一個32位的指針地址,佔據4字節,而類方法則同時包含了方法的指針以及類指針地址,在32位win系統中佔據8個字節. ======================================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
系統時間:2024-05-11 13:23:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!