学习笔记类对象的内存释放
Posted SAP剑客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记类对象的内存释放相关的知识,希望对你有一定的参考价值。
类对象的内存释放
整理转自—《SAP ABAP 面向对象程序设计(原则、模式及实践)》
类对象与其他数据变量一样,都是要占据程序内存的,如果确定后续程序不会再使用对象实例,我们就可以删除对象实例,释放内存。SAP ABAP中对于不再使用的类对象实例使用垃圾收集器(Garbage Collector)删除。
ABAP OOP其实跟Java一样,不必主动删除和释放对象,虚拟机的垃圾收集机制会帮助我们清理和收集对象内存。
清除类对象可以使用”CLEAR”和”FREE”操作,将类对象设置为空值(NULL), 清除对象引用之后,系统并不会立即释放对象所占的内存空间,而是触发垃圾收集机制,由ABAP的GC(即垃圾收集器)在系统的内部调度下负责回收内存,回收的时机由系统掌握。
当然ABAP OOP也提供了系统垃圾清除语句:
CL_ABAP_MEMORY_UTILITIES=>DO_GARBAGE_COLLECTION( ).
上述语句可以主动调用ABAP的垃圾收集机制,释放系统内存资源。
【示例程序】
我们可以使用系统内置的方法获取内存的使用情况:
CL_ABAP_MEMORY_UTILITIES=>GET_TOTAL_USED_SIZE( IMPORTING SIZE = DATA(LV_INIT_SIZE) ).
也可以通过程序运行时Debug中的内存分析(Memory Analysis)工具获取内存使用情况。
Tip:
以上是关于学习笔记类对象的内存释放的主要内容,如果未能解决你的问题,请参考以下文章
[学习笔记—Objective-C]《Objective-C-基础教程 第2版》第九章 内存管理