【学习笔记】类对象的内存释放
類(lèi)對(duì)象的內(nèi)存釋放
整理轉(zhuǎn)自—《SAP ABAP 面向?qū)ο蟪绦蛟O(shè)計(jì)(原則、模式及實(shí)踐)》
類(lèi)對(duì)象與其他數(shù)據(jù)變量一樣,都是要占據(jù)程序內(nèi)存的,如果確定后續(xù)程序不會(huì)再使用對(duì)象實(shí)例,我們就可以刪除對(duì)象實(shí)例,釋放內(nèi)存。SAP ABAP中對(duì)于不再使用的類(lèi)對(duì)象實(shí)例使用垃圾收集器(Garbage Collector)刪除。
ABAP OOP其實(shí)跟Java一樣,不必主動(dòng)刪除和釋放對(duì)象,虛擬機(jī)的垃圾收集機(jī)制會(huì)幫助我們清理和收集對(duì)象內(nèi)存。
清除類(lèi)對(duì)象可以使用”CLEAR”和”FREE”操作,將類(lèi)對(duì)象設(shè)置為空值(NULL), 清除對(duì)象引用之后,系統(tǒng)并不會(huì)立即釋放對(duì)象所占的內(nèi)存空間,而是觸發(fā)垃圾收集機(jī)制,由ABAP的GC(即垃圾收集器)在系統(tǒng)的內(nèi)部調(diào)度下負(fù)責(zé)回收內(nèi)存,回收的時(shí)機(jī)由系統(tǒng)掌握。
當(dāng)然ABAP OOP也提供了系統(tǒng)垃圾清除語(yǔ)句:
CL_ABAP_MEMORY_UTILITIES=>DO_GARBAGE_COLLECTION(?).
上述語(yǔ)句可以主動(dòng)調(diào)用ABAP的垃圾收集機(jī)制,釋放系統(tǒng)內(nèi)存資源。
【示例程序】
我們可以使用系統(tǒng)內(nèi)置的方法獲取內(nèi)存的使用情況:
CL_ABAP_MEMORY_UTILITIES=>GET_TOTAL_USED_SIZE(??IMPORTING?SIZE?=?DATA(LV_INIT_SIZE)?).
也可以通過(guò)程序運(yùn)行時(shí)Debug中的內(nèi)存分析(Memory Analysis)工具獲取內(nèi)存使用情況。
Tip:
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【学习笔记】类对象的内存释放的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【学习笔记】Django
- 下一篇: 【学习笔记】区块链应用判断准则