在Linux中,可以使用工具如malloc_info
、mtrace
、valgrind
、gdb
等来查看glibc内存分配情况。
例如,可以使用mallinfo
函数来查看glibc内存分配情况,示例代码如下:
#include
#include
int main() {
struct mallinfo mi = mallinfo();
printf(\"Total non-mmapped bytes (arena): %d\\n\", mi.arena);
printf(\"# of free chunks (ordblks): %d\\n\", mi.ordblks);
printf(\"# of fastbin blocks (smblks): %d\\n\", mi.smblks);
printf(\"# of mmapped regions (hblks): %d\\n\", mi.hblks);
printf(\"Space in mmapped regions (hblkhd): %d\\n\", mi.hblkhd);
printf(\"Maximum total allocated space (usmblks): %d\\n\", mi.usmblks);
printf(\"Free space (fsmblks): %d\\n\", mi.fsmblks);
printf(\"Total allocated space (uordblks): %d\\n\", mi.uordblks);
printf(\"Total free space (fordblks): %d\\n\", mi.fordblks);
printf(\"Topmost releasable block (keepcost): %d\\n\", mi.keepcost);
return 0;
}
编译并运行上述代码,即可查看glibc内存分配情况。