• 6-内存


    ("▔□▔)~这是一个很敏感的值~最近几年说起安卓机配置,先别管CPU是啥,普通机型的内存没有3G起步都不好意思卖~旗舰机内存不是4G起步的都不好意思宣传,然而,各种app占用的内存也是越来越大~总的来说,当一个对象持有Activity的引用,假如该对象使用后不能被系统回收,便出现了内存泄漏的情况。不那么高大上的内存泄漏也包括Activity启动模式设置的不合理.比如可以通过特殊操作,无线重复开启多次某个界面,多循环几次类似操作,内存就会被占用的越来越多了~

    我们如果只看数据找BUG,测试起来还是很轻松的.最简单的方法:点击菜单键,我们就能看到剩余的内存量,通过配合各种场景模拟,然后看看剩余内存就能取一个大概值了~

    -----测试要严谨的分割线-----

    怎么可以真的如此这般(╯‵□′)╯ノ┻━┻☆冒个烟还凑合~

     

    上面那个不太好的例子,取出值的可依据性较低,毕竟按照安卓app的尿性,不知不觉可能已经有很多app后台自启,并且在干扰你的数据了~

    所以推荐一个取值命令,针对单一程序包进行内存取值,这个数据的可依据性就很高了:

    adb shell dumpsys meminfo package

    我们需要关注的是TOTAL的第一个值,单位是kb.

     

     

     

    然后,就是老样子,模拟各种使用场景进行长时间操作,操作期间取值查看内存使用情况.如果内存长期在一个可控的范围内波动那么可以算是没问题.

    当然也需要跟老版本进行对比,如果某些操作的内存波动范围有明显变化,那么就值得好好探讨一下了~

     

    如果发现某场景数据异常,那么首先要沏茶一壶,再找个舒服的凳子,然后来到程序猿旁边,最后心平气静的问他你在这块代码里都干啥了?

    -----华丽的吐槽线-----

    ((╯‵□′)╯︵┻━┻  鬼知道程序猿们会写出什么BUG)

     

     

  • 相关阅读:
    Linux命令-网络命令:netstat
    Linux命令-网络命令:traceroute
    Linux命令-网络命令:lastlog
    Linux命令-网络命令:last
    mongodb3.4 安装及用户名密码设置
    MySQL表名不区分大小写的设置方法
    数据库设计中的四个范式
    dubbo本地调试直连
    com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024)
    Linux服务器时间同步
  • 原文地址:https://www.cnblogs.com/dianxiao2/p/6215555.html
Copyright © 2020-2023  润新知