设为首页 加入收藏

TOP

Android 内存分配小结
2014-11-24 03:24:51 来源: 作者: 【 】 浏览:1
Tags:Android 内存 分配 小结

无图无真相,贴张MSM7627的内存分布图,一目了然:


Android


由上图可以看到,内存主要分给modem/bootloader/SMEM/pmem/android几个部分使用:


1、modem/bootloader/SMEM部分一般会占用40M~50M的内存,上图占用了43M。这部分主要用于跑AMSS、bootloader及RPC。如果你有源码的话,可以在device\qcom\msmxxx/Boardconfig.mk看到。还有一种方法,可以用adb pull /proc/config.gz .将config.gz文件dump下来,里面可以看到分配给linux的内存大小,用物理内存总大小减去这部分,就可以得到这部分的内存总开销。


2、Pmem一般会占用40M的内存,上图占用了38M左右。系统的framebuffer\mdp\video等都会用到这部分memory。如果你有源码的话,可以在kernel/arch/arm/mach-msm/Board-xxx.c文件中看到Pmem的分配情况。譬如:


#define MSM_PMEM_MDP_SIZE 0x1B76000


#define MSM_PMEM_ADSP_SIZE 0xAE4000


#define MSM_PMEM_AUDIO_SIZE 0x5B000


#define MSM_FB_SIZE 0x177000


#define MSM_GPU_PHYS_SIZE 0x177000


#define PMEM_KERNEL_EBI1_SIZE 0x1C000


3、最后是给用户空间使用的memory,用free或者cat /proc/meminfo等命令看到的是这部分的memory大小。大小是之前第一步传给linux kernel的memory大小减去pmem的占用部分再减去linux kernel和ramdisk大小。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下面的C开发---Socket编程 下一篇如何察看Android smem log

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)
·金融界大佬力荐,Pyt (2025-12-25 04:49:42)
·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)