s07452
一般會員
發表:20 回覆:16 積分:7 註冊:2003-11-17
發送簡訊給我
|
也許問的不是很好,請見諒: 全域的func or proc會佔記憶體空間嗎?
此處指的並不是說要執行時載入記憶體的佔據記憶體空間
而是整個proj執行時、此proc or func未使用時
仍佔據記憶體嗎?如同變數那樣? 延伸問一:
若是NO,那麼請問DELPHI是利用何種方式找到此函數?
延伸問二:
Object的member function,當不具有生命週期的時候
也會佔用記憶體空間嗎?
同延伸問一,class是如何找到member function來使用呢?
|
syntax
尊榮會員
發表:26 回覆:1139 積分:1258 註冊:2002-04-23
發送簡訊給我
|
全域的func or proc會佔記憶體空間嗎?
ans : 只要不是動態載入的,都會存在於記憶體內(即佔記憶體空間)
1. Yes , so ......
2. Yes
2-1. 用記憶體定址,詳細內容請自行看書吸收,牽涉多個領域,就不多說
|
Leway
一般會員
發表:43 回覆:71 積分:22 註冊:2003-07-29
發送簡訊給我
|
Hi:
func or proc無輪是否執行都會佔用記憶體,否則如何找到它們.
VCL和Win的回調函數巧妙結合實現找到要執行的方法.詳細請參考 李維 Object的member function,當不具有生命週期的時候會佔用記憶體空間,在VMT(動態方法表單)中.從VMT中搜索到到調用執行. =======================================
為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
|
s07452
一般會員
發表:20 回覆:16 積分:7 註冊:2003-11-17
發送簡訊給我
|
感謝回答。 再請問:
若為了節省記憶體空間,而將全域func改寫成class的member func
又因為Delphi允許就算Object not create也可以呼叫使用此member func 這樣的寫法、以整個proj的觀點來看、是較好的嗎?
或者仍應該維持寫成全域的func ?
|
Leway
一般會員
發表:43 回覆:71 積分:22 註冊:2003-07-29
發送簡訊給我
|
將全域func改寫成class的member func是否能節省記憶體我不確定.
但是這樣寫以整體觀念看要好. =======================================
為學日益,為道日損,損之又損,以致於無。為無為,而無不為。 發表人 - Leway 於 2004/03/16 10:30:10
|
Leway
一般會員
發表:43 回覆:71 積分:22 註冊:2003-07-29
發送簡訊給我
|
補充一些內容 一般函數只是普通的指針地址,在32位的win系統中是一個32位的指針地址,佔據4字節,而類方法則同時包含了方法的指針以及類指針地址,在32位win系統中佔據8個字節. =======================================
為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
|