使用adb dumpsys 命令查看app占用内存

使用adb dumpsys 命令查看app占用内存,第1张

adb是一个非常强大的工具,使用adb查看应铅虚衫用程序内存使用情况可按如下格式在命令行里查看内存使用情况:

adb shell dumpsys meminfo <package_name>

其中,package_name 也可以换成程序的pid,pid可以通过 adb shell top | grep app_name 来查找,下图是某个程序的内存使用情况:

重点关注如下几个字段:

(1) Native/Dalvik 的 Heap 信息具体在上面的第一行和第槐腔二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

(2) Total 的 PSS 信息这个值就是你的应用真正占据的誉仔内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

使用SDK的PSAPI (Process Status Helper)\x0d\x0a中的\x0d\x0aBOOL \x0d\x0aGetProcessMemoryInfo(\x0d\x0a HANDLE Process,\x0d\x0a \x0d\x0aPPROCESS_MEMORY_COUNTERS ppsmemCounters,\x0d\x0a \x0d\x0aDWORD cb\x0d\x0a)\x0d\x0a\x0d\x0atypedef \x0d\x0astruct _PROCESS_MEMORY_COUNTERS {\x0d\x0a DWORD cb\x0d\x0a DWORD PageFaultCount\x0d\x0a \x0d\x0aSIZE_T PeakWorkingSetSize\x0d\x0a//峰帆碰值内存使用\x0d\x0a SIZE_T WorkingSetSize\x0d\x0a//内存使用\x0d\x0a SIZE_T QuotaPeakPagedPoolUsage\x0d\x0a \x0d\x0aSIZE_T QuotaPagedPoolUsage\x0d\x0a \x0d\x0aSIZE_T QuotaPeakNonPagedPoolUsage\x0d\x0a \x0d\x0aSIZE_T QuotaNonPagedPoolUsage\x0d\x0a \x0d\x0aSIZE_T PagefileUsage\x0d\x0a//虚拟内存使用\x0d\x0a SIZE_T PeakPagefileUsage\x0d\x0a//峰值团孝虚拟内态或谈存使用\x0d\x0a} PROCESS_MEMORY_COUNTERS, \x0d\x0a*PPROCESS_MEMORY_COUNTERS\x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#pragma comment(lib,"psapi.lib")\x0d\x0ausing namespace std\x0d\x0avoid showMemoryInfo(void)\x0d\x0a{\x0d\x0aHANDLE handle=GetCurrentProcess()\x0d\x0aPROCESS_MEMORY_COUNTERS pmc\x0d\x0aGetProcessMemoryInfo(handle,&pmc,sizeof(pmc))\x0d\x0acout 回答于 2022-12-11

你好,方法如下:

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

(1)top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

$ top -u oracle

内容解释:

PID:进程的ID

USER:进程所有者

PR:进程的世颂雀优先级别,越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享搜早内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值樱返。

COMMAND:进程启动命令名称

常用的命令:

P:按%CPU使用率排行

T:按MITE+排行

M:按%MEM排行

(2)pmap

可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

$ pmap -d 14596

(3)ps

如下例所示:

$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存

$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5

其中rsz为实际内存,上例实现按内存排序,由大到小


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12464952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存