关于查看进程所占用物理内存的问题
一般查看进程所占物理内存的方法有:
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。
另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html
原文地址:https://blog.51cto.com/8906847/2389160