常见的测试方法包括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的原理

待完善

移动App性能评测与优化-Android内存测试 ,DVM原理的更多相关文章

  1. 移动APP性能评测与优化

    本文是<移动App性能评测与优化>的读书笔记. PS:说是读书笔记,其实就是摘录. 移动App的性能测试主要包括:内存使用情况.电量消耗.功能的流畅度等: 1. 内存 1.1 内存的主要组 ...

  2. 《移动App性能评测与优化》读书笔记

    第一章:内存   内存的主要组成索引: Native Heap:Native代码分配的内存,虚拟机和Android框架本身也会分配 Dalvik Heap:Java代码分配的对象 Dalvik Oth ...

  3. Android App性能评测分析-流畅度篇

    1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字 ...

  4. Android App 性能评测与调优

    要点: 1. 内存优化的目的以及工具介绍 2. Android APP 内存的主要问题分析与总结 3. UI 绘制原理以及量化工具 - UI 流畅度的主要问题分析以及 UI 绘制原理. 4. 如何获取 ...

  5. 移动App性能测评与优化1.4.4 多进程应用

    1.4.4 多进程应用 根据上一节中的描述,当一个进程结束后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担,共享库消耗的物理内存并不会减少.实际上,对于所有共享使用了这个库的应用,Pss ...

  6. 【App性能监控】:Android studio环境的搭建(以及遇到个各种坑)

    今天搭建app性能测试环境,使用的是android studio的Android Device Monitor抓取trace日志分析: 1,下载最新的android studio安装,这一步没啥问题: ...

  7. Android APP性能分析方法及工具

    近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...

  8. Android 内存泄露测试数据处理--procrank,setprop,getprop(转)

    1.Android内存测试常用的几个概念. VSS--virtual set size 虚拟耗用内存(包含共享库占用的内存)RSS--Resident set size实际使用的物理内存(包含共享库占 ...

  9. android app性能优化大汇总(内存性能优化)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

随机推荐

  1. java面试 (八)- 关于减少if else

    if else一般不建议嵌套超过三层,如果一段代码存在过多的if else嵌套,就会严重降低可读性.那么如何降低if else的嵌套数呢? 1:把接口分为外部和内部接口,所有空值判断放在外部接口完成: ...

  2. 【视频开发】 十全大补:CxImage图像处理类库

     十全大补:CxImage图像处理类库 转载IT168        CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JP ...

  3. 使用objcopy实现将文件编译进执行程序

    一.简介  工作中可能遇到将一个文件编译进执行程序的需求,例如bin文件.jpg文件等等.实现的方法可以使用脚本来将文件内容写入一个新的C源文件数组,达成编译进程序的目的. 现在介绍一种简单.快捷的方 ...

  4. centos7 nginx 配置 ssl证书

    安装nginx 从阿里云服务器下载 nginx版本的ssl证书,防止再 /etc/nginx/ssl 下 停止 nginx 服务 systemctl stop nginx 修改配置文件 /etc/ng ...

  5. leetcode309 买卖股票

    一.穷举框架 首先,还是一样的思路:如何穷举?这里的穷举思路和上篇文章递归的思想不太一样. 递归其实是符合我们思考的逻辑的,一步步推进,遇到无法解决的就丢给递归,一不小心就做出来了,可读性还很好.缺点 ...

  6. LeetCode 74. 搜索二维矩阵(Search a 2D Matrix)

    74. 搜索二维矩阵 74. Search a 2D Matrix 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. ...

  7. 20190715《Python网络数据采集》第 1 章

    <Python网络数据采集>7月8号-7月10号,这三天将该书精读一遍,脑海中有了一个爬虫大体框架后,对于后续学习将更加有全局感. 此前,曾试验看视频学习,但是一个视频基本2小时,全部拿下 ...

  8. Java8一Lambda与函数式接口

    关于Lambda表示在工作学习中会经常用到,但并没有全面的去了解.在这里做一个较为详细的记录供以后学习查阅.主要参考Java 8 Lambda 表达式 引言 Java8之前,我们在使用Runnale创 ...

  9. caffe层解读-softmax_loss

    转自https://blog.csdn.net/shuzfan/article/details/51460895. Loss Function softmax_loss的计算包含2步: (1)计算so ...

  10. IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT的分析

    https://www.cnblogs.com/daihuiquan/archive/2013/03/18/2956845.html IDENT_CURRENT.IDENTITY.SCOPE_IDEN ...