zoukankan      html  css  js  c++  java
  • 移动App性能评测与优化-Android内存测试 ,DVM原理

    常见的测试方法包括Monkey/UIAutomator类的常规压力测试,大数据/操作的峰值压力测试,长时间运行的稳定性测试等。

    前提:

      测试准备:版本是纯净版本,不应该附加多余的log和调试用组件。 

    一,测试场景

    1.当前新开发或改动的某项功能,包括功能开启前,运行,结束后等测试点。

    2.另一类是整体性能,考察应用的常见场景,再综合使用下的性能指标,包括启动后待机,切换到后台,执行主要功能,以及反复执行个功能后。

    二,测试重点:

    1.包含了图片显示的页面

    2.网络传输大量数据

    3.需要缓存数据的场景

    三,测试用例

    1.结合场景比较操作前后或不同版本的内存变化

    2.显示多张图片的前台进程

    3.多个场景来回切换

    4.长时间运行进程的内存增长

    四,dalvik heap的常见问题

    1.随着功能的反复执行,heap内存一只再持续增长,这种情况通常是出现了内存泄漏,适合用leak-canary等泄漏检查工具进行测试分析。

    2.代码执行时出现了频繁的GC,heap alloc内存大幅度波动。这种情况通常时分配了许多临时变量或数组,随后又被迅速回收,这种情况再确定具体场景后适合使用heap viewer/allocation tracker工具来查看具体分配的对象。

    3.每次启动应用后,heap内存相比以前版本稳定增长。这种情况通常出现再启动后待机或使用某功能后,可能时有新功能即代码改动引入的固定内存增长。这种情况适合获取heap dump后进行多版本或功能使用前后的对比,能够迅速找到增长原因。

    4.heap alloc变化不大,但进程的dalvik heap pss内存明显增加。这种情况比较少见,时由于分配了大量小对象造成的内存碎片。

    五,dalvik heap的原理

    待完善

  • 相关阅读:
    Netty实战
    ObjectTools反射实例
    SpringBoot新增监听器Listener
    拦截器(Inteceptor),过滤器(Filter),切面(Aspect)处理HttpServiceReqeust请求
    Linux CentOS7.2下安装Redis && 配置Redis开机自启动
    JVM命令行工具&垃圾收集器&垃圾收集策略思维导图
    Redis总结
    Java自定义注解的实现
    反射实例
    系统管理员常用的Linux命令
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/11719799.html
Copyright © 2011-2022 走看看