1. cat /proc/meminfo 得知内存状况2. 写时分配,malloc时尚未分配,strcpy或其他操作时再予分配3. cat /proc/<pid>/statm 得知进程的内存页面状况#cat /proc/6277/statm6020 2253 1602 78 0 458 0虚空间 物理内存 共享页数 可执行虚存大小 被映像到任务的虚存空间库大小 程序数据段及用户态栈大小4. cat /proc/<pid>/maps 看各地址对应的文件/动态库( 代码段-只读可执行,堆段-可读写,栈段-向上增长至0xC00000000 )5. cat /proc/<pid>/memmaps( cat /proc/<pid>/smaps ) 看虚存对应物理内存状况6. malloc得到的ptr之前4个字节系chunk结构,包括前一块的大小,自身大小,标志位7. 标志位关注上一块正在被使用与否,或是否通过mmap分配得到8. 一次malloc分配至少16字节,8字节对齐,分配20字节的话会得到24字节9. glibc中,1G以内空间的管理由brk负责,大于1G则由mmap方式负责10. 对小块内存将不去尝试合并11. 小块内存的定义可由#include <malloc.h> int mallopt(int param, int value) 定义12. param 通常取值为M_MXFAST,缺省值为64