美文网首页js css htmlSAP
ABAP Memory Inspector 的功能简介

ABAP Memory Inspector 的功能简介

作者: _扫地僧_ | 来源:发表于2023-01-16 14:42 被阅读0次

    ABAP Memory Inspector 报告运行 ABAP 程序的 Internal Session 使用的内存。

    这个工具可以给 ABAP 开发人员揭示以下信息:

    1. 直接归因于 ABAP 应用程序的内存消耗。 这包括 ABAP 程序的静态和动态内存对象中的内存,以及程序在 ABAP 堆栈上使用的内存。

    2. 整个内部会话针对主机操作系统的内存分配。 这包括 ABAP 内存消耗以及 ABAP 运行时(ABAP Runtime)和内部会话管理消耗的相对较小的内存量。

    内存检查器总是在拍摄快照之前运行 ABAP 垃圾收集器,这样 dead 内存对象就不会干扰 ABAP Memory Inspector 采集的内存消耗数据。

    换言之,在使用 ABAP Memory Inspector 之前,不需要显式调用 CL_ABAP_MEMORY_UTILITIES 的 DO_GARBAGE_COLLECTION 方法:

    也不需要在调试器里,显式使用 Start Garbage Collector 进行内存回收:

    一般而言,尤其是因为运行内部会话的开销很小,所以在分析内存问题时只有 ABAP 应用程序的内存才是重要的。 作为开发人员,我们在任何情况下都只能影响 ABAP 程序的内存消耗,而不能影响运行时系统的内存消耗。

    在 ABAP 内存对象的类型中,最有可能导致问题的是动态内存对象。 动态内存对象是那些大小可以随着程序运行而改变的对象。 它们包括以下类型的 ABAP 实体:

    • 内部表(或者更确切地说,内部表中的行,它的主体)

    • 字符串

    • 类对象(由 CREATE OBJECT 语句创建的对象)

    • 匿名数据对象(由 CREATE DATA 语句创建的对象)

    • Boxed Component

    用于访问动态内存对象的变量包含对内部内存结构的引用,其中保存了动态内存对象的数据。 因此,动态内存对象的变量统称为引用变量。

    在 ABAP 中,我们通常将引用的程序实体称为 deep Component,这是一种其内容必须通过引用的 evaluation 来访问的组件。

    相关文章

      网友评论

        本文标题:ABAP Memory Inspector 的功能简介

        本文链接:https://www.haomeiwen.com/subject/ziracdtx.html