嵌入式Linux优化
嵌入式Linux优化
1. cat /proc/meminfo 得知内存状况
2. 写时分配,malloc时尚未分配,strcpy或其他操作时再予分配
3. cat /proc/<pid>/statm 得知进程的内存页面状况
#cat /proc/6277/statm
6020 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
评论暂时关闭