zoukankan      html  css  js  c++  java
  • 查看Android内存,cpu

    转自https://testerhome.com/topics/2583

    一、查看内存

    查看Android应用内存:

    adb shell dumpsys meminfo

    1、查看详细的内存:

    adb shell dumpsys meminfo pakagename or Pid

    看其中的Size 可以发现 Native Heap 和Dalvik Heap 占据了Heap Size
    dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的。
    对于内存的限制 这里纠正一下:是 dalvik heap不能超过最大限制,跟Native heap没有关系!
    最大限制查看:

    #查看单个应用程序最大内存限制
     adb shell getprop|grep heapgrowthlimit

    得到结果:

    |[dalvik.vm.heapgrowthlimit]: [96m]
    

    这个96M是单个程序限制最大内存,而meminfo 里面的dalvik heap size 的最大值若果超出了96m 那就很可能会发生OOM
    dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虚拟机的最大内存限制,应用如果不想在dalvik heap达到heapgrowthlimit限制的时候出现OOM,需要在Manifest中的application标签中声明android:largeHeap=“true”,声明后应用dalvik heap 达到heapsize的时候才会出现OOM!

    注:设备的不一样 最大内存限制也可能不一样

    现在大多数手机 的android程序内存一般限制在96M以上甚至更高,也可能更低。

    2,用/system/xbin/procrank工具 来取值很直观

    adb shell procrank

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

    USS 是针对某个进程开始有可疑内存泄露的情况, 是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放!

    二、查看cpu:

    1、adb shell top  -d 1 -s cpu |findstr com.golive.cinema

    -d,cpu刷新时间

    -s,安装cpu排序

    -t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量

    2、adb shell dumpsys cpuinfo

    0%后面跟的是pid

    查看具体apk是:adb shell dumpsys cpuinfo|findstr com.golive.cinema

  • 相关阅读:
    jq中$(function(){})与原生window.onload的区别
    利用window.parent调用Iframe父页面变量、方法的爬坑之路
    前端跨域3种基本解决方案
    MySQL按日期分组统计(按天统计,按月统计)
    go读取文件内容写入另一文件中
    C++中函数返回值是一个对象时的问题
    docker构建dpdk运行环境镜像
    NFS服务安装
    tesseract-4.0.0源码编译安装
    linux系统设置cpu孤立
  • 原文地址:https://www.cnblogs.com/344525813xiang/p/6723344.html
Copyright © 2011-2022 走看看