Linux malloc_stats和/proc/pid/stat之间的相关性

Linux malloc_stats和/proc/pid/stat之间的相关性,linux,memory-leaks,embedded,malloc,Linux,Memory Leaks,Embedded,Malloc,我在一个嵌入式linux系统上工作。我了解你提供的信息。我想知道malloc_stats打印的信息与/proc/stats提供的内存使用信息之间的关系。 背景是我想检测应用程序中的每个线程以检查内存泄漏。Malloc_stats打印有用的信息,但不能以编程方式使用。/proc//task/有有用的信息,但我无法将其与当前线程使用的堆内存相关联。您是否忽略了库函数?它是malloc\u stats()获取信息的地方 直接回答这个问题:/proc中的数据将反映进程的总内存使用量,包括内存分配和空闲内

我在一个嵌入式linux系统上工作。我了解你提供的信息。我想知道malloc_stats打印的信息与/proc/stats提供的内存使用信息之间的关系。 背景是我想检测应用程序中的每个线程以检查内存泄漏。Malloc_stats打印有用的信息,但不能以编程方式使用。/proc//task/有有用的信息,但我无法将其与当前线程使用的堆内存相关联。

您是否忽略了库函数?它是
malloc\u stats()
获取信息的地方


直接回答这个问题:
/proc
中的数据将反映进程的总内存使用量,包括内存分配和空闲内存之间的空闲空间,以及根本没有通过
malloc()
分配的正在使用的内存(例如堆栈、全局/静态变量等)<代码>malloc_stats()会将其分解为实际分配的和未分配的。

谢谢。我的主要目的是获取每个线程的信息。我知道获得线程分解的最佳方法是使用/proc/pid/task/tid/stat。但是根据您的回复,我了解关于常驻集大小(rss)的信息不反映线程分配的动态内存的实际数量和分配的总大小。据我所知,内存没有按每个线程进行跟踪。它属于进程,而不仅仅是一个线程。根据线程的定义,它没有自己的内存空间,而是与同一进程的所有线程共享内存空间。所以说线程分配的内存是没有意义的。它是由整个进程分配的内存(与哪个特定线程调用了
malloc
库或
malloc
调用的
mmap
系统调用无关)。