类对象的内存释放

整理转自—《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:

【学习笔记】类对象的内存释放相关推荐

  1. Java学习笔记类对象多态继承(下)

    面向对象(下) 1.类的继承 一.什么是继承,有什么用? 继承:在现实世界当中也是存在的,例如:父亲很有钱,几子不用努力也很有钱 继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要 ...

  2. JVM学习笔记(四)------内存调优

    首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提 ...

  3. JavaScript学习笔记之对象及继承

    JavaScript学习笔记之对象及继承 对象属性 ES5中有两种属性,数据属性和访问器属性. 数据属性包括[[writable]](能否修改属性的值).[[value]]等等: 访问器属性包括[[C ...

  4. C++对象模型5——类对象的内存布局

    一.类对象的内存布局 1.1.单一继承的类对象布局 示例1 class base { public:int m_fai;int m_faj; }; class derive : public base ...

  5. C++类对象在内存中的布局

    目录 一.前言 二.C++ 类对象的内存布局 2.1 只有数据成员的对象 2.2 没有虚函数的对象 2.3 拥有仅一个虚函数的类对象 2.4 拥有多个虚函数的类对象 三.继承关系中的C++类对象内存分 ...

  6. C++中的类对象的内存分布以及虚函数表内存分布

    ​ 目录 目录 一.前言 二.C++ 类对象的内存布局 三.函数调用 一.前言 C++的精髓是虚函数.虚函数带来的好处就是:可以定义一个基类的指针,其指向一个继承类,当通过基类的指针去调用函数时,可以 ...

  7. JavaScript学习笔记:对象

    JavaScript学习笔记:对象 1.声明对象 (1)字面量对象 <!DOCTYPE html> <html lang="en"> <head> ...

  8. es6学习笔记-顶层对象_v1.0_byKL

    es6学习笔记-顶层对象_v1.0 (虽然是笔记,但是基本是抄了一次ruan大师的文章了) 顶层对象 顶层对象,在浏览器环境指的是window对象,在Node指的是global对象. ES5之中,顶层 ...

  9. JVM学习笔记之-对象的实例化,内存布局与访问定位,直接内存(Direct Memory)

    对象的实例化 对象的内存布局 图解 对象的访问定位 句柄访问 好处 reference中存储稳定句柄地址,对象被移动(垃圾收集时移动对象很普遍)时只会改变句柄中实例数据指针即可,reference本身 ...

最新文章

  1. html5 minlength,HTML5中是否有minlength验证属性?
  2. 什么是HDMI视频光端机?
  3. LeetCode 350. 两个数组的交集 II(哈希)
  4. c语言中printf输出格式
  5. UE4 移动平台游戏开发
  6. 《Hadoop海量数据处理:技术详解与项目实战(第2版)》一2.8 小结
  7. 杂:(4)NE555
  8. android post 提交数据
  9. Java I/O总结——OutputStream
  10. MVC采用Jquery实现局部刷新
  11. SoapUI接口测试——全流程转载
  12. 安装了java后,为什么有些jar不能执行
  13. 企业级无线无缝漫游之思创漫游3.0 Plus ,三层漫游
  14. Excel函数 - Round函数使用方法
  15. 如何获取HanLP的nature中文名
  16. u盘上传百度网盘照片显示服务器错误,百度云上传文件失败怎么办-百度云上传文件失败的解决方法 - 河东软件园...
  17. activeMQ启动失败61616port被占用问题
  18. 知晓云深坑:数据修改返回401解决办法
  19. 保护你的眼睛——设置电脑屏幕颜色和ClearType字体
  20. 关于EVE模拟器思科交换机无法启动问题

热门文章

  1. 阿德:工作与发财之间的秘密
  2. 复盘无人业态的三点心得:起于共享单车,止于何?
  3. 【原创译文】Jive Circle案例学习:以用户为中心的设计
  4. 思必驰携手博泰,共创智能汽车新声代
  5. Fetch API HTTP请求实用指南
  6. python opencv SIFT,获取特征点的坐标位置
  7. error while loading shared libraries的解決方法
  8. 【原创】PostgreSQL 增量备份详解以及相关示例
  9. Excel 2007中创建或删除自定义数字格式
  10. 让感恩变成永久的记忆