内存分配度量

内存分配度量是从收集器所记录的堆跟踪数据计算得出的。在堆跟踪中,对 C 标准库内存分配函数 mallocreallocmemalign 以及释放例程 free 的调用会被收集器截取,调用的数据将记录在实验中。分析器将使对分配函数的调用与对释放内存的 free 的调用相匹配,并计算下表中列出的度量。对 realloc 的调用会被解释为对 free 的调用,随后是对 malloc 的调用。

对于以 JavaTM 编程语言编写的应用程序,堆跟踪数据将记录由用户代码生成的对象分配事件,以及由垃圾收集器生成的对象释放事件。此外,使用 mallocfree 等其中任何一项时也会生成将被记录的事件。这些事件可能来自于本机代码或来自 Java 虚拟机本身。请注意,数据收集进程使用描述内存分配和垃圾收集的 JVMPI 事件,这可能在运行时导致显著膨胀。在大多数基于 Java 技术的应用程序中,存在许多这样的事件,这将导致较大的实验以及处理数据时的可量测性问题。此外,如果请求这些事件,垃圾收集器将禁用一些内联分配,同时花费附加 CPU 时间用于更长的分配路径。

度量 定义
分配数 对内存分配函数的调用数目。
分配的字节数 在对内存分配函数的每一调用中分配的字节数总和。
泄漏数 对内存分配函数(不具有相应的对 free 的调用)的调用数。
泄漏的字节数 已分配但未释放的字节数。

如果使用过滤按线程、LWP 或抽样选择数据,则所选数据中的分配调用会与对 free 的相应调用相匹配,而不管对 free 的调用是否位于所选数据中。

由于收集器将其自身的函数插入 C 标准库函数上,因此度量归属于收集器库 libcollector.so 中的函数版本。

泄漏和分配的列表在 [泄漏列表] 标签中提供。

另请参见
泄漏列表标签
计时度量
硬件计数器度量
线程同步延迟度量
MPI 跟踪度量
互斥、相容和归属度量
设置数据表示首选项

找到要找的内容了吗?如未找到,请将您的意见通过电子邮件发送至 docfeedback@sun.com。
法律声明