close
記憶體清除 ( Garbage collection )
記憶體清除在做些什麼事
-
在 PowerBuilder 的記憶體清除機制中,主要是檢查不再使用的物件,自動釋放出該實體 ( 物件 ) 的記憶體。當然也可以直接下 DESTROY 的指令,來強制釋放出無用的實體。
何時會執行記憶體清除的工作
-
當參考變數 ( reference variable ) 移除時,這個時候 PowerBuilder 就會將其對應的實體 ( 物件 ) 使用的記憶體清除。如果有多個參考變數對應到同一個實體,PowerBuilder 會在最後一個參考變數移除後,才去執行記憶體清除的動作。
定時處理,PowerBuilder 每隔 0.5 秒 ( 預設值 ),會主動去檢查各個實體 ( 物件 ) 與參考變數對應的關係,當發現無對應的實體時就會執行記憶體清除的動作。
記憶體清除的例外處理
-
可視物件 ( visual object ),當程式中使用可視物件時,就算是沒有對應的參考變數,PowerBuilder 也不會執行記憶體清除的動作,原因很簡單,可視物件是一種可以與使用者互動的物件。
計時物件 ( timing object ),PowerBuilder 會自動產生內建的參考變數,所以不需要做記憶體清除的動作。
共用物件 ( shared object ),PowerBuilder 會自動產生內建的參考變數,所以不需要做記憶體清除的動作。
程式處理
-
除了 PowerBuilder 自動處理之外,也可以在程式中呼叫相關函數來處理記憶體清除的動作:
- GarbageCollect
- GarbageCollectGetTimeLimit
- GarbageCollectSetTimeLimit
轉載自 飛達客論壇
全站熱搜
留言列表