一般查看进程所占物理内存的方法有:
1) top
其中的RES(其实就是RSS) 和SHR(就是本进程中共享库等占用的总大小,不取平均时)列。
2)ps
其中ps或者新版本android中ps -A显示
其中的RSS
3)pmap
新版本的android支持pmap命令
pmap -x 进程号
其中的
PSS和swap列。
swap是交换到zram或者磁盘的物理内存大小。
需要注意的是:
Terms
VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
另外android以前使用
MALLOC_IMPL = dlmalloc
来切换dlmalloc和jemalloc。没有定义MALLOC_IMPL宏时,默认是jemalloc
android新版本,例如android O,不能再定义MALLOC_IMPL了,否则lunch时报错。而改用:
MALLOC_SVELTE = true 来disable tcache to configure jemalloc for low-memory。
具体对应android8.1来说,build/make/core/soong_config.mk中通过MALLOC_SVELTE控制Malloc_not_svelte的$(SOONG_VARIABLES),从而影
响到external/jemalloc/的Android.bp文件的对应的cflags的配置。
另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html
我的新的更多优惠的打包课程链接如下:
https://edu.51cto.com/sd/0a9d4
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。