编程技术分享平台

网站首页 > 技术教程 正文

安卓内存分析之重要工具——procrank命令

xnh888 2025-01-04 23:51:09 技术教程 32 ℃ 0 评论

1、我们先简单的介绍这个命令:

procrank是/system/xbin/下的一个命令,在整机开发的时候,使用该命令查看应用进程的内存情况很方便。但是这个命令需要在debug/eng模式编译的时候才有。如果是正式版本,那么就需要root之后才能使用该命令。

目前以debug模式编译的APK来操作这个命令。

2、procrank各项值解析

进入adb shell,获取root权限,输入命令:procrank即可,如下图:


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

VSS和RSS对查看某一进程自身的内存状况没什么作用,因为他们包含了共享库的内存使用,而往往共享库的资源占用比重是很大的。

我们一般观察Uss来反映一个进程的内存使用情况,Uss 的大小代表了只属于本进程正在使用的内存大小,这些内存在此进程被杀掉之后,会被完整的回收掉。

USS是一个非常有用的数字,因为它揭示了运行一个特定进程的真实的内存增量大小,如果进程被终止,USS就是实际被返还给系统的内存大小。USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。

怀疑某个程序有内存泄露可以查看USS值是否一直有增加。

3、如果只想打印某一个进程的内存信息,那么可以做以下操作:

adb shell

procrank | grep com.google.android.tts

或者还可以这么操作:

adb shell procrank |findstr com.google.android.tts

4、我们针对这个进程打印多条内存信息后,可以做图处理


PS:如果内存曲线一直是这么延续增长,那么就是有内存泄漏的风险。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表