堆跟踪(内存分配)数据

另请参见

为何收集堆跟踪数据?

收集堆跟踪数据可以帮助识别程序中的内存泄漏,或查找动态内存不足的地方。

收集器如何收集堆跟踪数据?

收集器将包装器函数插入 C 标准库内存分配函数 mallocreallocmemalign 及内存释放函数 free 中。Fortran 子例程 allocatedeallocate 调用 C 标准库函数,因此这些子例程也被间接跟踪。

在性能分析器中可以看到哪些堆跟踪度量?

堆跟踪数据将被转换为以下度量:

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

堆跟踪数据收集的限制是什么?

除非已经预装入收集器库 libcollector.so,否则不能在已经运行的程序中收集堆跟踪数据。有关详细信息,参见在正运行的进程上收集性能数据

JavaTM 内存分配和重新分配将无法跟踪。

有关详细信息,参见《程序性能分析工具》手册。

另请参见
收集性能数据

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