zoukankan      html  css  js  c++  java
  • APP性能指标之内存篇

    1.测试app内存占用的方法:

    adb shell dumpsys meminfo <包名>or pid

    2.原理说明

    对于一个app,我们可以关注它在3种状态下的内存占用情况:

    空负荷————app已经在后台运行,但是用户没有使用;

    中负荷————app在前台运行,用户进行了少量操作;

    满负荷————用户持续频繁大量操作,app接近饱和状态运行。

    然而,除了第一种情况,其它两种的主观性很强,不是很容易区分。正常产品测试的时候,只要验证后台运行(5~10分钟为宜)和用户持续频繁大量操作(10~15分钟为宜)这两种情况下就可以了。

    内存分为PSS、RSS、VSS、USS

    VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间

    (VSS:VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已经申请但尚未使用的内存空间。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用情况是不准确的。)

    RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。

    (RSS:表示一个进程在RAM中实际使用的空间地址大小,包括了全部共享库占用的内存,这种表示进程占用内存的情况也是不准确的。)

    PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

    (PSS:表示一个进程在RAM中实际使用的空间地址大小,它按比例包含了共享库占用的内存。假如有3个进程使用同一个共享库,那么每个进程的PSS就包括了1/3大小的共享库内存。这种方式表示进程的内存使用情况较准确,但当只有一个进程使用共享库时,其情况和RSS一模一样。)
    USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。

    (USS:表示一个进程本身占用的内存空间大小,不包含其它任何成分,这是表示进程内存大小的最好方式!)
    可以看到:VSS>=RSS>=PSS>=USS
    USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加

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

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

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





    原文:https://blog.csdn.net/u012613604/article/details/73294120 

    原文:https://blog.csdn.net/bigconvience/article/details/35553983 

    改变自己,从自律开始
  • 相关阅读:
    异步编程:利用委托实现的.NET历史上第一个异步编程模型
    C#:委托
    C#:方法参数之--扩展方法
    py实现ftp
    sftp接口机上传脚本
    通过telnet自动下载cfg配置文件
    下载bat脚本
    solairs11与solairs10 ftp服务的区别
    windows中ftp下载脚本(bat+vb)
    windows2008r2防火墙设置一例
  • 原文地址:https://www.cnblogs.com/kekouwen/p/10403876.html
Copyright © 2011-2022 走看看