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

轉載自 飛達客論壇


arrow
arrow
    全站熱搜

    PB 發表在 痞客邦 留言(0) 人氣()