我正在开发基于 jemalloc 的内存跟踪器。它用于通过调用 mallctl 大致收集进程的基本内存统计信息,并在内存超过阈值时阻止更多即将到来的请求。
以前我使用 stats.mapped or stats.resident
,但后来我发现即使释放了一些分配的内存,即使在purge
or之后这些内存也没有返回给操作系统decay
。所有内存都将munmap
在进程退出时。由于共享内存和其他用途被排除在外,因此使用stats.allocated
或stats.active
无法获得正确的结果。
我的问题是,如何使用 jemalloc 获取 RAM 中进程的内存使用情况?顶部的 RSS 或操作系统报告的 ps 之类的东西。
谢谢!