博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android -- 进程内存,CPU及内核打印输出
阅读量:2260 次
发布时间:2019-05-09

本文共 1453 字,大约阅读时间需要 4 分钟。

工欲善其事必先利其器,这里记录下几种android系统查看的手段汇集一下,先记下我这些天用的一些,后面再陆续添加:

1查看内存

cat /proc/cpuinfo 系统CPU的类型等多种信息。

cat /proc/meminfo 系统内存使用信息

空闲内存=free+buffers+cached=total-used 通过读取文件/proc/meminfo的信息获取Memory的总量

系统中对于此信息的解析: android_os_Process_getFreeMemory @ android_util_Process.cpp

PSS,VSS,USS等单个进程使用内存信息:

android_os_Debug_getDirtyPagesPid @ android_os_Debug.cpp

JAVA 层接口:

Process.java 获取 pid, uid , getFreeMemory , getPss等等

getMemoryInfo @ ActivityManager.java

几个概念含义:

• VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

• RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
• PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
• USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

2、linux 内核信息输出

直接使用 printk(KERN_ERR ...) 没有打印消息,如下的手段可用:

cat /proc/kmsg 

查看信息,它会block住,然后随着我的调试不断打印。当有printk打印出信息的时候,自然会在窗口中打印出来的

3、OOM 错误out of memory 内存不够问题调试

引用:

在系统内存不足的时候会回收页框,但是在这个过程中可能会发现,系统即使是以最高优先级扫描都无法释放足够的页面来满足请求。如果系统不能够释放页面,就会调用out_of_memory函数,告知系统发生内存溢出,这时就会杀死某个进程。在__alloc_pages函数中,当调用try_to_free_pages回收页框无效的时候,会调用out_of_memory杀死一个进程,释放所占有的page后,再重新尝试分配。

详情请阅读: 够清晰

写一个简单的java应用确认,是否没有足够的栈(内存)空间:

public byte[] crashData = null;

public long m_totalmem = 0;

public static final int MALLOC_SIZE =100*1024 ;

crashData = new byte[MALLOC_SIZE];

m_totalmem +=MALLOC_SIZE;

4、获取系统当前时间,用于调试耗时操作

System.java

System.currentTimeMillis(); //local system time in milliseconds
System.nanoTime(); //the current timestamp in nanoseconds

5、查看及修改系统属性:

getprop /setprop

转载地址:http://nhdcb.baihongyu.com/

你可能感兴趣的文章
TWRP / android 四清三清双请概念
查看>>
MySQL 基本款指令 _ 不定时补充
查看>>
Git GitHub Idea 基本款命令 _ 不定时补充
查看>>
Parallel Desktop 16 for Mac 11.0.1 Big Sur
查看>>
计算机网络 自顶向下方法 第二章 应用层
查看>>
第三章 运输层
查看>>
计算机网络常见概念
查看>>
Java并发编程
查看>>
Java中 & 运算
查看>>
Linux 压缩命令 (gzip / bzip2 / zip / tar) 特点及区别
查看>>
linux 面试题 及 参考答案
查看>>
Java集合框架学习总结
查看>>
Java 并发指南开篇:Java 并发编程学习大纲
查看>>
JVM 原理学习总结
查看>>
搞定计算机网络面试
查看>>
再谈GC1:GC简介,分代与回收算法
查看>>
高并发与多线程的关系与区别
查看>>
ConcurrentModificationException异常原因及解决方法
查看>>
springboot使用fastjson解析
查看>>
MySQL查询结果导出文件
查看>>